Method for brewing a beverage

ABSTRACT

One variation of an apparatus for brewing a beverage includes: a reservoir containing fluid; a boiler including a heating element and a fluid pickup, a portion of the boiler arranged vertically below the reservoir; a brew chamber, a portion of the brew chamber arranged vertically above the boiler; a first contactless valve operable in a first mode and in a second mode, the first contactless valve open in the first mode to communicate fluid from the reservoir into the boiler and closed in the second mode; a second contactless valve operable in the first mode and in the second mode, the second contactless valve open in the first mode to vent gas from the boiler and closed in the second mode; and an air pump configured to displace air into the boiler in the second mode to displace fluid from the boiler, via the fluid pickup, into the brew chamber.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/903,776, filed on 13 Nov. 2013, which is incorporated in its entirety by this reference.

This application is a related to U.S. patent application Ser. No. 14/213,882, filed on 14 Mar. 2014, which claims the benefit of U.S. Provisional Application No. 61/785,348, filed on 14 Mar. 2013, both of which are incorporated in their entireties by this reference.

TECHNICAL FIELD

This invention relates generally to the field of coffee brewing, and more specifically to a new and useful apparatus for brewing a beverage in the field of coffee brewing.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a flowchart representation of a method of one embodiment;

FIG. 2 is a flowchart representation of one variation of the method;

FIG. 3 is a schematic representation of a coffee brewing machine of one embodiment of the invention;

FIG. 4 is a flowchart representation of one variation of the method;

FIG. 5 is a flowchart representation of one variation of the method;

FIGS. 6A and 6B are graphical representations of one variation of the method; and

FIG. 7 is a flowchart representation of one variation of the method.

FIG. 8 is a schematic representation of an apparatus of one embodiment of the invention;

FIG. 9 is a schematic representation of one variation of the apparatus;

FIG. 10 is a schematic representation of one variation of the apparatus; and

FIGS. 11A, 11B, 11C, 11D and 11E are schematic and graphical representations of one variation of the apparatus.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiment of the invention is not intended to limit the invention to these preferred embodiments, but rather to enable any person skilled in the art to make and use this invention.

1. First Method and Applications

As shown in FIG. 1, a method for brewing coffee at a coffee brewing machine includes: identifying a coffee bean from data derived from a canister containing the coffee bean in Block S110; retrieving a recipe for the coffee bean in Block S120, the recipe specified by a coffee roaster supplying the coffee bean; identifying a grind profile of the coffee bean in Block S130; setting brewing parameters at the coffee brewing machine based on the recipe and the grind profile of the coffee bean in Block S140, the brewing parameters including a brew temperature and a steep time; and controlling the coffee brewing machine according to the brewing parameters to brew the cup of coffee from the coffee bean in Block S150.

As shown in FIG. 7, one variation of first method S100 for brewing a cup of coffee at a coffee brewing machine includes: receiving a coffee source identifier in Block S110; retrieving a recipe for brewing a coffee bean based on the coffee source identifier in Block S120; initiating a brew cycle in Block S142; heating water in a boiler to a target temperature specified by the recipe in Block S152; metering a volume of water from the boiler into a brew chamber in Block S154; heating the brew chamber to maintain the volume of water near the target temperature in Block S160; according to the recipe, displaying an agitation instruction at a first time during the brew cycle in Block-S170; according to the recipe, triggering a first alarm to cease agitation at a second time during the brew cycle in Block S172; and according to the recipe, triggering a second alarm to dispense fluid from the brew chamber at a third time during the brew cycle in Block S180.

First method S100 functions to set and control brewing parameters for a coffee bean based on a predetermined coffee recipe to enable accurate and repeatable replication of a coffee experience, such as defined by a coffee roaster supplying the coffee bean. In particular, first method S100 can enable a coffee roaster to refine and set a specific brewing recipe for his coffee bean, such as on a bean type basis, on a roast batch number basis, or even on a per-pound of coffee basis, thereby providing the coffee roaster with controls to predetermine and remotely (and asynchronously) oversee the flavor of every cup of coffee brewed with his coffee beans, whether in a local coffee shop, in a remote café, or in a private residence.

First method S100 can enable this functionality by identifying a particular whole or ground coffee bean selected for an upcoming brew cycle, such as based on an identifier applied to packaging containing the bean or based on a selection for the coffee bean entered manually into the coffee brewing machine. First method S100 then retrieves a brew recipe specific to the identified coffee bean, such as from local memory or from a remote database of coffee brewing recipes. Alternatively, first method S100 can extract the recipe directly from the coffee bean packaging (e.g., a one-pound coffee bag, a coffee tin), such as by reading and translating a quick-response (QR) code, a bar code, a RFID tag, or other embedded code applied or printed onto the packaging. First method S100 then sets brewing parameters to brew cup, pot, or other volume of coffee with the coffee bean (i.e., a brew cycle) at the coffee brewing machine. For example, first method S100 can account for a current state of the coffee brewing machine or a local coffee grinder (e.g., hours, wear), water quality, environmental conditions, or coffee bean quality (e.g., age, moisture content), etc. to map the recipe to the coffee brewing machine for the current brew cycle.

First method S100 is described generally in the context of brewing coffee. For example, first method S100 can control various parameters to accurately and repeatably recreate a coffee flavor experience—as defined by an affiliated coffee roaster—from freshly-ground whole coffee beans. However, first method S100 can also be applicable to brewing tea or to brewing any other hot to cold beverage. Furthermore, first method S100 is described generally in the context of replicating a coffee experience defined by a coffee roaster by accurately and repeatedly executing a recipe set by the roaster for the particular coffee bean. However, any other entity can create, modify, or set a recipe for brewing a coffee bean (or other steeping material), such as a café manager, a trained barista, a taste representative of a restaurant that serves its own “brew” of a common coffee, a hotel manager, a representative of a catering service, or any other representative of a food- or drink-related business or service in order to customize the recipe for the business or service. A user can also create, modify, or set the recipe and then share the recipe with other users (e.g., other cafés, other baristas), such as over a social networking system, through an online forum, or via an execution file shared via email.

2. Coffee Brewing Machine

Blocks of first method S100 can execute on a coffee brewing machine capable of automatically controlling brew time, brew temperature, brewing pressure, agitation, and water-to-coffee-ground ratio controls and/or capable of interfacing with a human user (e.g., a barista) to guide executing of the specific recipe for the coffee bean. For example, Blocks of first method S100 can be implemented by a coffee brewing machine incorporating the brewing system described below.

In another example shown in FIG. 3, the coffee brewing machine 100 includes an input module 110 for a receiving a coffee bean selection, a water reservoir 120, a boiler 130 that heats water received from the reservoir 120, a first temperature sensor 131 that measures water temperature in the boiler 130, a brew chamber 140 in which water is steeped with coffee grounds, a pump 150 that dispenses heated water into the brew chamber 140, heater that heats fluid in the brew chamber 140 during brew cycles, a second temperature sensor 141 that measures fluid temperature in the brew chamber 140, a valve 142 in the base of the brew chamber 140 to dispense fluid out of the brew chamber 140, a manually-operated piston 170 that forces fluid out of the brew chamber 140 through a filter between the valve 142 and the brew chamber 140, a display 112 that presents brewing instructions to a user, an audio driver 114 that delivers audible cues to the user, and a processor 160 that controls the foregoing components of the coffee brewing machine 100 to brew the selected coffee bean automatically or with manually assistance. In this example, the input module can include an optical sensor, and the processor 160 can communicate with the optical sensor to read a QR code on the coffee packaging, interface with a wireless communication module within the coffee brewing machine 100 to retrieve a coffee brewing recipe from a remote server based on the QR code, set brewing parameters based on the retrieved brewing recipe (and other measured or determined variables at or near the coffee brewing machine 100), and applies the coffee brewing parameters through the foregoing components of the coffee brewing machine 100 during the brew cycle.

However, the coffee brewing machine 100 can be of any other suitable form, such as a large professional coffee brewing machine for café use, an under-counter coffee brewing machine, or a small residential coffee brewing machine for a private or home use. The brewing machine can also source water from a plumbed line or tap into a commercial or residential plumbing system or from a reservoir within the brewing machine that is refilled manually.

Alternatively, as shown in FIG. 2, one or more Blocks of first method S100 can be execute on a discrete computing device in communication with the coffee brewing machine 100. In one example in which the coffee brewing machine 100 is a residential coffee brewing machine, a user can open a native application (or an application within a web browser) executing on his mobile computing device (e.g., a smartphone, a tablet) to scan a QR code printed on a coffee bag, and the native application can transmit data extracted from the QR code to a remote server to retrieve the coffee brewing recipe and then upload the received recipe to the user's coffee brewing machine, such as over Wi-Fi, cellular, or Bluetooth communication protocol. Alternatively, the native application can trigger the remote server to push the recipe directly to the coffee brewing machine 100. The coffee brewing machine 100 can then execute other Blocks of first method S100 to brew the coffee bean according to the received recipe and/or brewing parameters. In this example, the native application can also handle wired or wireless communications with the coffee brewing machine 100 to track and store a serial number, a model number, age, total hours of use, gallons of water used, actual and target temperature of the boiler 130 and the brew chamber 140 in the coffee brewing machine 100, and/or other information pertaining to the coffee brewing machine 100. The native application can similarly access local information, such as time, weather, humidity, temperature, and location from sensors integrated into the mobile computing device (e.g., a thermistor, a global positioning system (GPS) sensor) and/or downloaded from a local weather tower or an online weather database. The native application can thus adjust brewing parameters for the upcoming brew cycle based on machine and environmental information. However, the mobile computing device and the coffee brewing machine 100 can cooperate in any other way to execute Blocks of first method S100.

Blocks of first method S100 can additionally or alternatively be implemented by a remote computer system, such as a remote server in communication with the coffee brewing machine 100 or with a network of coffee brewing machines linked through an Internet or Ethernet connection. The computer system can be a cloud-based computer (e.g., Amazon EC2), a mainframe computer system, a grid-computer system, or any other suitable computer system. For example, the computer system can be a remote server that communicates with one or more coffee brewing machines over HTTP (or TCP or UDP) protocols through a web service (e.g., Amazon AWS). The computer system can thus receive recipe, roaster, coffee brewing machine, coffee grinder, environmental, and other data from and transmit parameters, recipe information, etc. to the coffee brewing machine 100, a coffee grinder, a user's mobile computing device, etc., such as over an Internet, Ethernet, cellular, Wi-Fi, satellite, or other suitable connection. However, Blocks of first method S100 can be implemented by any other one or more devices and in any other suitable way.

3. Coffee Bean Identifier

Block S110 of first method S100 recites receiving a coffee source identifier. Generally, Block S110 functions to collect data identifying the coffee bean to be brewed and to pass these data to Block S120, which selects a particular brew recipe corresponding to the coffee bean for an upcoming brew cycle on the coffee brewing machine 100.

In one implementation, Block S110 automatically identifies a coffee bean from data collected from the packaging containing the coffee bean. In particular, in this implementation, Block S110 identifies the coffee bean that is to be brewed in the upcoming brew cycle by extracting identifying information directly from the coffee bean packaging—such as from a one-pound coffee bag or from a coffee tin—containing whole coffee beans or coffee grounds. As described below, Block S110 can cooperate with Block S120 to extract or retrieve a recipe for the coffee directly from the packaging containing the coffee bean. Alternatively, Block S110 can retrieve a coffee source identifier—such as a serial number or address unique to the packaging, the coffee bean roast batch, or to the roaster supplying the coffee bean—and Block S120 can reference the coffee source identifier to a local or remote database of coffee beans to identify the specific coffee bean and to retrieve the corresponding recipe.

In this implementation, Block S110 downloads a coffee source identifier from a radio frequency identification (RFID) tag, a near-field communication (NFC) tag, or any other suitable wireless transmitter arranged on the packaging. For example, the coffee brewing machine 100 can include an RFID reader, an NFC reader, or an other radio-based wireless scanner or receiver, and Block S110 can interface with this receiver to collect the coffee source identifier from the coffee packaging, such as when a user swipes the coffee packaging over the receiver. In particular, Block S110 can cooperate with Block S120 to download the recipe directly from wireless transmitter arranged on the coffee bean packaging. Alternatively, Block S110 can download a unique code (e.g., an alphanumeric sequence) from the wireless transmitter arranged on the coffee bean packaging and pass the code to a remote server that identifies and selects the corresponding recipe, and Block S120 can then receive the recipe back from the remote server. In this implementation, Block S110 can similarly execute on or interface with a receiver integrated into a user's mobile computing device to retrieve the coffee source identifier from the coffee bean packaging.

Alternatively, in this implementation, the coffee brewing machine 100 includes an optical sensor (e.g., a camera), and Block S110 interfaces with the optical sensor can capture an input of the coffee bean packaging and implements machine vision to identify a QR code, a bar code, a serial number, or other coffee source identifier printed on or applied to the packaging. For example, Block S110 can implement optical character recognition to extract coffee-related information from an image of a portion of the bag on which the QR code, bar code, or serial number, etc. is arranged. In this example, Block S110 can control the optical sensor to automatically capture the image when a user holds the coffee packaging in front of the optical sensor. Block S110 can thus cooperate with Block S120 and the optical sensor to read the recipe directly off of the packing. Block S110 can alternatively read the coffee source identifier, such as a name, a roast batch number, a roaster, a roast date, and/or a serial number, directly off of the packaging, and Block S120 can pass any one or more of these data to local memory or to a remote server to collect the corresponding recipe. Similarly, Block S110 can identify a code arranged on the packaging in the image, such as a barcode or a QR code, and translate the identified code into coffee source identifier (e.g., an alphanumeric sequence), and Block S120 can similarly handle the coffee source identifier to collect the recipe for the coffee bean. For example, Block S110 can read a quick-response code applied onto the coffee bag with an optical sensor coupled to the coffee brewing machine 100 and identify a coffee roaster supplying the coffee bean and a roast date of the coffee bean from the quick-response code, and Block S120 can download the recipe assigned to the coffee bean for the roast date by the coffee roaster.

In another implementation, Block S110 cooperates with the input module 110 to receive manual entry of a name, an identification number, a batch number, a serial number, or any other suitable coffee source identifier related to the coffee bean selected from the upcoming brew cycle. For example, the coffee brewing machine 100 can include a display 112 and a discrete input region (e.g., a switch or button), and Block S110 can control the display 112 to render a menu of coffee bean recipes stored locally on the coffee brewing machine 100. In this example, the display 112 can cycle through the available recipes based on inputs into the input region, and Block S120 can retrieve a recipe corresponding to a selection by the user. Thus, as in this example, Block S110 can receive a manual selection for the coffee bean from a list of coffee beans. Block S110 can similarly control a touchscreen or an analog interface on the coffee brewing machine 100 to collect a manual selection of a particular coffee bean affiliated with a brewing recipe stored locally or remotely. Block S110 can also interface with the user's mobile computing device to receive a selection for the coffee bean. Alternatively, Block S110 can receive manual entry of a code, such as a numeric or alphanumeric code printed directly onto the packaging or printed onto a sticker applied to the packing. However, Block S110 can receive an identifier of the whole or pre-ground coffee bean in any other suitable way.

In any of the foregoing implementations, Block S110 can receive the coffee source identifier that defines a pointer to a particular coffee bean (e.g., a particular roast) from a particular coffee roaster, a roast date of the particular coffee bean, a batch roast number of the particular coffee bean, and/or a serial number of the packaging containing the particular coffee bean. Block S110 can thus receive one or more levels (or resolutions) of identifiers of the coffee bean to be brewed in the upcoming brew cycle, such as shown in FIG. 5. In particular, Block S110 can handle the coffee source identifier defining one of more of a general type of roast that is common to thousands of pounds of beans from the roaster annually, a date of roast that is common to hundreds of pounds of beans roasted by the roaster on one day (or week or other roast period), a roast batch number that is unique to fifteen pounds (15 lbs.) of coffee beans, or a coffee packaging serial number that is unique to one pound (or any similar quantity) of coffee beans. However, Block S110 can collect, extract, and/or receive the coffee source identifier defining any other identifier for the coffee bean in any other format.

4. Recipe

Block S120 of first method S100 recites retrieving a recipe for brewing a coffee bean based on the coffee source identifier. (Block S120 of first method S100 can similarly recite retrieving a recipe for the coffee bean, the recipe specified by a roaster associated with the coffee bean.) Generally, Block S120 functions to access a particular coffee brewing recipe specific to the coffee bean—as specified by a coffee roaster—based on the coffee source identifier collected in Block S110.

As described above, the recipe can be defined by the roaster as a target experience for a cup of coffee brewed from the particular coffee beans. Because each coffee bean harvest can be different, because each roaster can roast beans differently, because the same roaster can roast batches of beans differently, and because variations may exist even amongst beans within the same roast batch from the same roaster and sourced from the same coffee bean harvest, the target experience can be generic to one coffee roast supplied by the roaster (e.g., all dark roast from the roaster), specific to one coffee roast supplied by the roaster for one coffee harvest or coffee season, specific to one roast date (e.g., a day or week) for coffee beans from the roaster, specific to one roast batch number for coffee beans from the roaster, or specific to a single package of coffee beans from the roaster.

Generally, the recipe can define a set of quantitative (and qualitative) brewing parameters to (e.g., brew temperature, brew temperature profile, brewing duration, brew or initial water volume, coffee ground contact time with water per unit area, filter medium, filter size, brewing pressure, coffee grind profile, agitation profile, coffee ground-to-water ratio, water quality, user prompts or alarms, recipe expiration date, etc.) that, when executed (within a certain tolerance), achieve a target tasting experience (e.g., flavor, aroma, caffeine content, acidity, bitterness, sweetness, aftertaste, approach, body, finish) from a cup of coffee brewed with the coffee bean.

In one implementation, the recipe specifies a static base set of brewing parameters including a brew temperature, start and stop times for agitation, and a steep time (i.e., a time from initiation of a brew cycle to dispensation of fluid from the brew chamber 140). Subsequent Blocks of first method S100 can thus execute this limited set of brewing parameters for each brew cycle in which the corresponding coffee bean is used, such as automatically through actuators and sensors incorporated into the coffee brewing machine 100 or by guiding manual execution of one or more brewing parameters at the coffee brewing machine 100 during the brew cycle, as described below. The recipe can also specify a particular filter type and/or size to brew the coffee bean, such as a metal filter or a paper filter of a particular porosity and/or flow rate, as well as additional agitation periods and/or types of agitation, such as stirring or punching (i.e., pushing floating particulate downward, or “breaking the crust”). The recipe can further define a grind profile for coffee beans, such as a grind size and/or a threshold deviation of particulate size in the coffee grounds from the grind size.

In the foregoing implementation, the coffee brewing machine 100 can be preset to meter a particular volume of water from the boiler 130 into the brew chamber 140 for all brew cycles, and all brew cycles can be specify a static volume or weight of coffee grounds. Alternatively, the recipe can specify a specific ratio of coffee grounds to water (e.g., by mass, weight, or volume ratio). The recipe can thus specify an algorithm for calculating a particular mass, weight, or volume of coffee grounds for dispensation into the brew chamber 140 during a brew cycle for the preset static brew volume of the coffee brewing machine 100. Similarly, a subsequent Block of first method S100 can receive a final brew volume (i.e., a final volume of brewed coffee dispensed from the brew chamber 140 during a brew cycle), and the recipe can define an algorithm for calculating an amount of water and an amount of coffee grounds for dispensation into the brew chamber 140, such as based on a target ratio of coffee grounds to water during the steeping period and a water retention capacity of the grounds (e.g., a volume of water retained per unit weight of dry grounds).

The recipe can further include one or more algorithms for calculating or adjusting final brewing parameters (e.g., agitation type and time, steep time, brew temperature or profile, etc.) based on additional variables, such as grind profile or distribution, bean age, location, barometric pressure, ambient air temperature to account for additional factors that may effect flavor of coffee brewed with the coffee beans. For example, the recipe can specify algorithms than adjust brewing parameters based on a make and model, hours, and/or grinder settings of a local (e.g., adjacent or connected) coffee grinder, based on a location of the coffee brewing machine 100, which may indicate available water quality, elevation or barometric pressure, based on the ambient air temperature, or based on the make and model of the coffee brewing machine 100. Subsequent Blocks of first method S100 can thus normalize brewing parameters for the upcoming brew cycle to account for any one or more of these variables. In this example, the recipe can include ambient environmental conditions and brewing parameters used by the roaster when formulating the recipe for the coffee bean, such as brew time, brew temperature, brew pressure, agitation time(s) and type(s), and water-to-coffee-ground ratio. Subsequent Blocks of first method S100 can define these parameters as baseline parameters and then adjust the baseline parameters according to one or more algorithms in the recipe based on differences between the ambient environmental conditions during formulation of the recipe and present ambient environmental conditions at the coffee brewing machine 100 in preparation for the upcoming brew cycle.

As shown in FIG. 4, in one example process flow, the roaster roasts a batch (e.g., 100 lbs.) of coffee beans and dials in a recipe for the batch by brewing and tasting various cups of coffee with coffee beans from the batch. The roaster then uploads the recipe specific to the batch to a server and prints sticky labels with QR codes that point to the recipe. The roaster then applies the sticky labels to 1 lb. paper coffee bags and fills the bags with whole coffee beans from the roast batch. A customer (e.g., a coffee buyer for a café) then purchases one of the 1 lb. bags of coffee. When the QR code on the bag is later read with a scanner integrated into the coffee brewing machine 100, the coffee brewing machine 100 executes Block S110 to identity the batch number of the coffee bean in the bag and executes Block S120 to retrieve the recipe from the remote server before implemented the recipe in subsequent Blocks of first method S100 to brew a cup of coffee with the coffee bean.

As in the foregoing example process flow, Block S110 can receive the identifier directly from a tag or other wireless transmitter arranged on the coffee packaging, or Block S110 can extract the identifier from the coffee packaging, such as by implementing machine vision techniques to read a code from an image of the packaging as described above. Block S120 can then apply the identifier to a local or remote database of recipes to retrieve a particular recipe specific to the coffee bean selected for the upcoming brew cycle. In this implementation, because the recipe is stored electronically and separate from the coffee packaging (e.g., on a remote server), the roaster can update, modify, or tweak the recipe over time, and Block S120 can retrieve the current (i.e., most up-to-date) recipe specific to the beans to be roasted. Similarly, as in the second method described below, when the roaster enters or modifies a brew recipe for a particular coffee bean, the new or updated brew recipe can be pushed automatically to existing coffee brewing machines, such as to specific coffee brewing machines affiliated (e.g., through contract) with the roaster and/or designated for brewing the particular coffee bean.

However, Block S110 can receive an identifier for the coffee bean in any other way and in any other format, and Block S120 can function in any other way to retrieve the recipe specific to the coffee bean.

5. Grind Profile

One variation of first method S100 includes Block S130, which recites identifying a grind profile of the coffee bean. Generally, because grind profile can affect flavor of a cup of coffee, Block S130 functions to estimate an average grind size and standard deviation (i.e., a grind profile distribution) of coffee grounds ground from the coffee bean. In one implementation, Block S130 interfaces with an optical sensor to collect an image of dry grounds and implements machine vision to estimate average grind size and standard deviation of the coffee grounds from the image. For example, an optical sensor integrated into the coffee brewing machine 100 or into the user's mobile computing device can capture an image of grounds prior to dispensation of the grounds in the brew chamber 140 of the coffee brewing machine 100.

Alternatively, Block S130 can estimate the grind profile of the coffee bean based on the make, model, and/or age (e.g., hours of use) of a coffee grinder near the coffee brewing machine 100 and used to grind the coffee bean. For example, Block S130 can pass a make and model of the coffee grinder to a remote database container coffee grinder data and thus retrieve a particular shape, size, and/or orientation of burrs equipped in the particular coffee grinder used to grind the current coffee bean. For example, a coffee grinder equipped with flat burrs may produce a tighter grind profile than a coffee grinder equipped with round burrs, a coffee grinder equipped with vertically-oriented burrs may produce a tighter grind profile than a coffee grinder equipped with horizontally-oriented burrs, and a coffee grinder equipped with larger burrs may produce a tighter grind profile than a coffee grinder equipped with smaller burrs. Block S130 can thus predict the grind profile of coffee grounds output from the coffee grinder according to these burr parameters. Block S130 can also retrieve a coradiality, a burr material (e.g., sintered ceramic or ground steel), burr coating, burr type (e.g., crushing or cutting), burr age, and/or a date of most recent burr-replacement at the coffee grinder and estimate the grind profile of the coffee grounds accordingly.

In particular, grind profile standard deviation can be very high for brand new burrs and decrease as the burrs are “broken in.” However, as the coffee grinder continues to be used, the burrs eventually begin to wear out, thus yielding increasingly less uniform grind sizes. For example, once a new coffee grinder is broken in, it may yield grind profiles with relatively small standard deviations (such as shown in FIG. 6A), and older coffee grinders (i.e., coffee grinders with many hours of use) can yield grind profiles with relatively large standard deviations (such as shown in FIG. 6B). Block S130 can thus implement an algorithm or model linking grind profile standard deviation to coffee grinder age or use to estimate the grind profile distribution of the coffee grounds prior to brewing. For example, Block can implement a generic coffee grinder wear model to estimate grind profile standard deviation of grounds output from any coffee grinder. Alternatively, because coffee grinders from different manufacturers or different models of coffee grinders from the same manufacturer may wear differently, Block S130 can access a grinder wear model specific to the particular grinder used to grind the coffee bean prior to the brew cycle, such as by retrieving the grind model from a remote server based on a grinder make, model, and/or serial number entered into the user's mobile computing device or into the coffee brewing machine 100 manually or collected automatically from the grinder over wireless communication.

In the foregoing implementation, Block S130 can interface with a wireless communication module with the coffee brewing machine 100 (or within the user's mobile computing device) to download a make, model serial number, and/or hours of operation directly from the coffee grinder, such as over Wi-Fi or Bluetooth communication protocol. Alternatively, Block S130 can receive a manual entry of grinder hours of operation or other related data and estimate the grind distribution of grounds output from the coffee grinder. Block S130 can thus predict a grind profile for the coffee bean that is ground fresh and local to the coffee brewing machine 100, that is ground at a particular machine or by a particular grocer, coffee distributor, or roaster, etc.

Alternatively, the roaster can grind the coffee bean and dispense coffee grounds into the coffee packaging prior to sale. In this process flow, Block S130 can communicate with the roaster to retrieve grind profile data for the coffee bean, such as by downloading a grind data uploaded by the roaster to a grind database accessible by the coffee brewing machine 100 over the Internet. Block can similarly retrieve coffee grinder make, model, and/or hours of operation data from a grinder user by the roaster to grind the coffee to estimate the grind profile for the pre-ground beans, such as with a method described above.

Block S130 can also prompt the user to grind the coffee bean to a particular size. For example, Block S130 can prompt a user to grind the coffee bean to a particular size specified in the recipe (e.g., a size selected by the roaster and stored with the recipe). In this example, Block S130 can interface with a digital display 112 incorporated into the coffee brewing machine 100 to render an instruction for selecting a particular grind size at a local coffee grinder. Block S130 can also interface with the digital display 112 to render an instruction for dispensing a particular weight of coffee grounds (of the particular grind size) into the brew chamber 140, such as based on the ratio of coffee grounds to water specified in the recipe and/or based on a final brew volume selected by the user. Block S134 can similarly transmit a grind setting and/or a coffee grind weight to a local coffee grinder, such as a grind setting specified in the recipe and a grind weight based on the selection for the final brew volume.

Block S130 can also adjust the prompted grind size according to the measured or estimated grind profile distribution from the local coffee grinder. Block S130 can additionally or alternatively cooperate with other Blocks of first method S100 to adjust the prompted grind size to accommodate for other variables (e.g., ambient temperature, water quality) or to adjust other brewing parameters to compensate for an available ground size and distribution from the grinder. However, Block S130 can identify a grind profile of the coffee bean, prompt the user to grind the coffee bean to a particular grind size, or automatically set an output of a local coffee grinder in any other suitable way.

6. Fully-Automated Brewing

In one variation, first method S100 executes brew parameters defined in the recipe and/or refined in Block S140 described below by interfacing with various sensors and actuators within the coffee brewing machine 100 to automatically brew the selected coffee bean, as shown in FIG. 1. For example, a coffee brewing machine executing this variation of first method S100 can be installed in a residential setting to automatically—or with limited human involvement—brew coffee for an individual in his home.

In this variation, first method S100 can include Block S140, which recites setting brewing parameters based on the recipe and the grind profile of the coffee bean. Generally, Block S140 functions to adjust brewing parameters specified by the recipe for the upcoming brew cycle to compensate for any number of variables that may affect flavor of the brewed coffee, such as grind profile, freshness of grind, age of beans, local barometric pressure, local humidity, local ambient temperature, and water quality used to brew the cup of coffee. In particular, Block S140 can adjust brewing parameters set in by the recipe to achieve a coffee experience intended by the coffee roaster despite differences in local conditions (i.e., variables) leading up to the brew cycle.

For example, as described above, Block S140 can set brewing parameters defined in the recipe retrieved in Block S120 as baseline parameters and adjust these parameters according to differences between current conditions and conditions during the formulation of the recipe. For example, Block S140 can normalize the roaster's recipe to the current conditions at the coffee brewing machine 100 according to environment conditions, grind profile, water quality, age of the coffee bean, freshness of the grind, etc.

In one example implementation, Block S140 adjusts brewing parameters for the upcoming brew cycle to account for local barometric pressure near the coffee brewing machine 100. For example, because the free boiling point of water is proportional to barometric pressure, and Block S140 can decrease a peak or average brew temperature in response to lower detected or received barometric pressure near the coffee brewing machine 100. In this example, responsive to the lower peak or average brew temperature, Block S140 can increase brew duration and/or agitation accordingly. Furthermore, because barometric pressure can be linked to altitude and altitude linked to location, Block S140 can determine the location of the coffee brewing machine 100, such as by polling a GPS sensor in the coffee brewing machine 100 or a GPS sensor in the user's mobile computing device, and Block S140 can then access an average local barometric pressure for the location, such as from a lookup table. Alternatively, Block S140 can interface with a pressure sensor incorporated into the coffee brewing machine 100 to measure the local barometric pressure directly, or Block S140 can communicate with a weather tower to retrieve a local barometric pressure reading. However, Block S140 can receive local barometric pressure and adjust brewing parameters accordingly in any other suitable way.

In another example implementation, Block S140 adjusts brewing parameters to account for the ambient air temperature proximal the coffee brewing machine 100. In one example, Block S140 assumes that the temperature of the ground coffee bean is approximately the same temperature as the ambient air temperature, and, for lower detected ambient air temperatures, Block S140 extends the brew duration (i.e., steep time) and softens a temperature ramp profile within the brew chamber 140 to prevent temperature shock to the coffee grounds. Alternatively, for lower ambient air temperatures, Block S140 can set a faster temperature ramp in the brew chamber 140 to accommodate the brew chamber 140, water, and/or coffee grounds that are initially cooler in order to minimize contact between the grounds and the water outside of a particular temperature range. Block S140 can also adjust a steeping period (and an alarm to notify the user that the cup of coffee is ready) according to a predicted thermal energy flux from the brew chamber 140 based on ambient air temperature, a type of coffee cup (e.g., ceramic, paper) to be used, etc. In one example, Block S140 interfaces with a thermistor or other temperature sensor within the coffee brewing machine 100 or within the user's mobile computing device to detect the ambient air temperature proximal the coffee brewing machine 100. However, Block S140 can receive ambient air temperature and adjust brewing parameters accordingly in any other suitable way.

In yet another example implementation, Block S140 adjusts brewing parameters to account for a quality of water in use at the coffee brewing machine 100. In particular, tap and bottled water may contain various minerals that affect flavor, such as calcium, magnesium, sodium, potassium, chloride(s), zinc, iron, copper, and fluoride, and Block S140 can adjust brewing parameters to account for differences in water used by the roaster and water used at the coffee brewing machine 100. For example, for water with relatively high mineral content, Block S140 can reduce both brewing (i.e., steeping) time and average brew temperature to curb chemical reactions between metals in the water and acids in the coffee grounds, which can yield salts that affect the flavor of the coffee and/or upset an acid balance in the coffee. In this example, Block S140 can also cooperate with Block S130 to prompt the user to use a finer grind to account for the reduced brew time and brew temperature without substantially sacrificing body of the coffee. In a similar example, Block S140 can set a brewing time and a brewing temperature according to an amount of dissolved solids in the supplied water, which can affect solvent efficiency of the supplied water. Additionally or alternatively, Block S140 can set higher brew pressures to accommodate for the reduced brew time and temperature. Block S140 can also interface with a water mineral sensor integrated into the coffee brewing machine 100 to determine the mineral content of the water, or Block S140 can access a tap water profile database to retrieve tap water data based on the location of the coffee brewing machine 100. Alternatively, the user can enter a type of bottled water or scan a barcode on a bottle of water used to brew the coffee, and Block S140 can access a bottled water profile database to retrieve water quality data for the selected bottled water. However, Block S140 can receive any other water quality data and adjust brewing parameters accordingly in any other suitable way.

In another example implementation, Block S140 adjusts brewing parameters to account for the grind profile of the coffee bean. In particular, the grind profile—or the average size and standard deviation of particles ground from coffee beans—may affect which and to what extent flavors are extracted from each ground over time during a brew cycle. For example, grounds that are smaller or larger than a target size range can yield undesirable or imbalanced flavors, since grounds that are too small may have been severed from particulate that yields complementary flavors and grounds that are too large limit may predominantly yield flavors that stem from larger molecules, thereby upsetting flavor balance of the brew. In particular, ground size can affect permeability of the grounds, thereby affecting the flavor of coffee brewed within the grounds. Therefore, Block S140 can adjust brewing parameters (e.g., brewing duration, agitation, brew temperature profile, brewing pressure) to control water-to-ground contact time, thereby controlling flavor extraction from the grounds for the current grind profile. For example, for a grind profile with a proper average ground size but a standard deviation of ground size outside of a threshold standard deviation, Block S140 can increase brewing duration and decrease average brew temperature to selectively extract more flavors from larger grounds during brewing. In another example, for a grind profile with an average ground size greater than a preferred ground size but a proper standard deviation of ground size, Block S140 can increase average brew temperature, increase agitation, and increase brewing pressure to extract more balanced flavors from the grounds. However, Block S140 can receive a grind profile of the coffee bean and adjust brewing parameters accordingly in any other suitable way.

In the foregoing example, implementation, Block S140 can also adjust brewing parameters to account for the age of the coffee bean and/or the freshness of the grounds. In particular, a whole bean may degrade and become stale over time, thus resulting in diminished flavors in a brew. Degradation of flavor from the coffee bean may be further exacerbated if the bean is stored ground rather than whole. Therefore, Block S140 can implement a degradation algorithm—such as specific to a coffee bean and stored configuration (i.e., whole or ground)—to model changes in flavors extractable from the coffee bean based on age of the coffee bean (i.e., time since roasting). Block S140 can also access a coffee bean or roaster database to determine an age of the coffee bean based on the roast date, batch number, or a “ready” date (i.e., a number of specified rest days following the roast date). Alternatively, Block S140 can interface with Block S110 to extract a roast or ready date directly from the coffee packaging. In one example, for an older and relatively degraded bean, Block S140 can increase brewing duration, average brew temperature, and average brewing pressure in order to extract more flavor from the bean to compensate for a decrease in extractable flavors from the bean over time. Similarly, Block S140 can prompt the user to fill the brew chamber with a larger amount (e.g., volume, mass, or weight) of grounds to compensate for older whole coffee beans (e.g., more than two weeks old) or for coffee grounds that were ground outside of a preferred flavor window (e.g., more than 24 hours prior). Block S140 can also throw a warning and/or notify the user if the coffee bean is too old to yield a cup of coffee that achieves the coffee experience specified by the roaster. However, Block S140 can receive an age of the coffee bean and adjust brewing parameters accordingly in any other suitable way.

In another implementation, Block S140 can adjust the brewing parameters to account for a mass of grounds to be brewed, such as by setting a volume of water to be added to the brew chamber 140 in Block S154 based on the amount of coffee grounds to be brewed. For example, Block S140 can receive a ratio of water (e.g., in grams) to coffee grounds (e.g., in grams) from the recipe, interface with a scale integrated into the brew chamber 140 to measure a mass of grounds added to the brew chamber 140, and calculate the volume of water to add to the brew chamber 140 based on the water-to-grounds ratio and the mass of grounds. Alternatively, Block S140 can receive manual entry of ground mass entered by a user. Yet alternatively, a user can load grounds into the brew chamber 140 with a scoop or known volume, and Block S140 can estimate the mass of grounds based on manual entry of the number of scoops and a known or estimate density of the coffee ground, such as a density specific to the particular coffee bean as measured by the roaster.

Block S140 can also account for changes in moisture content of the coffee bean over time (e.g., based on the degradation algorithm described above), water absorption volume of the grounds, water absorption rate of the grounds (e.g., based on the grind profile), etc. to estimate a ratio of water added to the brew chamber 140 to water released from the brew chamber 140 upon completion of the brew cycle. For example, Block S140 can receive a manual entry or user selection of a volume final brew volume (e.g., 4 oz., 8 oz., six cups), calculate a mass of grounds to add to the brew chamber 140, instruct the user to add the mass of grounds to the brew chamber 140, and set a volume of water to add to the brew chamber 140 accordingly. However, Block S140 can receive, estimate, or measure a mass of grounds for consumption during the brew cycle and/or receive a selection for a volume of coffee to output during the brew cycle and adjust brewing parameters accordingly in any other suitable way.

Block S140 can further set a pre-wetting and/or water ingress pulse parameters for dispensing water in to the brew chamber 140. For example, Block S140 can set a pre-wetting parameter to add a first 50 g of water the brew chamber 140 in Block S154 and to set a soak timer for the grounds. In another example, Block S140 can set a water ingress pulse parameter to add a first 50 g of water at a first time, pause for ten seconds, and then add 250 g of water at a specified interval and flow rate up to a total initial water volume (i.e., based on a determined ratio of water in to coffee out) in Block S154. However, Block S140 can function in any other way to set any other brewing parameter.

In this variation, first method S100 can also include Block S150, which recites controlling a coffee brewing machine according to the brewing parameters to brew the coffee bean. Generally, Block S150 functions to implement brewing parameters set in Block S140 to brew the coffee bean by monitoring sensors integrated into the coffee brewing machine 100 and controlling actuators within the coffee brewing machine 100 accordingly.

Initially, Block S150 heats water in a boiler 130 to a target temperature and then actuates the pump 150 to dispense a volume of water—set in Block S140—into the brew chamber 140. For example, Block S150 can control a pump to displace water from the boiler 130 into the brew chamber 140, interface with a flow sensor arranged along a fluid supply line to the brew chamber 140 to measure the volume of water displaced into the brew chamber 140, and then power off the pump when the desired dispensed water volume is reached.

Once water and grounds are both dispensed into the brew chamber 140, Block S150 implements closed-loop feedback to control a heating element coupled to the brew chamber 140 to maintain the temperature of fluid within the brew chamber 140 based on outputs of a temperature sensor 141 coupled to the brew chamber 140 and a brew temperature set in Block S140. For example, Block S150 can control the heating element and the plunger 170 arranged over the brew chamber 140 to implement heating and pressure profiles set in Block S140 based on outputs of a temperature sensor 141 (e.g., a thermocouple, a contactless laser-based temp sensor) and a pressure sensor arranged in the brew chamber 140, respectively. In this example, Block S150 can control the heating element according to a time-dependent temperature profile, such as by initially increasing the temperature of the grounds and water in the brew chamber 140 from room temperature to a preset target temperature of 195° F. over a preset period of time and holding the temperature at 195° F. for a subsequent preset period of time. Block S150 can also control an impeller, ultrasonic transducer, or other agitator arranged in or in communication with the brew chamber 140 according to an agitation profile parameter set in Block S140. In this example, Block S150 can control the agitator according to a time-dependent agitation profile, such as by agitating the water and grounds in the brew chamber 140 for a first period of time (e.g., thirty seconds) during the brew cycle and then ceasing agitation for the remainder of the brew cycle.

Finally, when a water-ground contact period completes—as specified in Block S140—Block S150 can control a valve 142 coupled to the brew chamber 140 to dispense fluid (i.e., brewed coffee) from the brew chamber 140 into a coffee cup, a coffee pot, a thermos, or any other container.

Block S150 can also implement a post-brew rest period parameter set in Block S140 to notify a user that the coffee is ready to drink or distribute. For example, Block S140 can specify that the coffee should rest for 90 seconds after brewing and before consuming, such as based on an optimal consumption temperate set by the roaster and an anticipated cooling time related to an ambient air temperature near the coffee brewing machine 100. Thus, Block S150 can implement the brewing parameters set in Block S140 to reduce a possibility of human error during a brew cycle and to enable substantially accurate and repeatable brewing results.

Alternatively, Block S150 can interface with sensors and actuators arranged within the coffee brewing machine 100 to implement brew parameters defined explicitly within the or to implement a combination of brew parameters defined in the recipe and refined in Block S140. However, Block S150 can function in any other suitable way to control a coffee brewing machine according to brewing parameters—assigned to the coffee bean and/or manipulated in Block S140 according to local parameters and/or user inputs—to brew the coffee bean.

However, in this variation, Blocks of first method S100 can function in any other way to automatically implement parameters specified in a recipe for a particular coffee bean selected for brewing on a coffee brewing machine.

7. Semi-Automated Brew Cycle

In another variation, first method S100 interfaces with various sensors within the coffee brewing machine 100, controls a set of actuators within the brewing machine to implement a subset of brewing parameters for the brew cycle, and presents instructions (i.e., prompts, directives) to the user to implement remaining brewing parameters for the brew cycle, as shown in FIG. 7. This variation of first method S100 can therefore control specific variables of a brew cycle, such as brew temperature, and guide a user through operation of the coffee brewing machine 100 to replicate a coffee experience defined by the corresponding roaster without eliminating a manual component of coffee brewing. In particular, in this variation, first method S100 can control some brewing variables automatically while guiding manual control of other brewing variables to maintain human involvement and an appearance of a trained, professional barista operating the coffee brewing machine 100 to brew coffee. For example, a coffee brewing machine executing this variation of first method S100 can be installed in a coffee shop or café and used by professional baristas to brew coffee from patrons.

This variation of first method S100 includes Block S142, which recites initiating a brew cycle. Generally, Block S142 functions to begin the brew cycle by locking brewing parameters, such a brew temperature, a brew time, and agitation types and times. For example, Block S142 can extract these brew parameters directly from the recipe, and subsequent Blocks of first method S100 can implement these brew parameters during the brew cycle to brew the coffee bean. Block S142 can also deliver prompts to the user to prepare the coffee brewing machine 100 for the brew cycle and/or receive inputs from the user to adjust the brew parameters.

In one example implementation, Block S142 extracts a filter type from the recipe, as described above, and renders—on the display 112—an instruction to insert a filter of the filter type into the coffee brewing machine 100 accordingly prior to the initiating the brew cycle.

In another example implementation, Block S142 prompts a user to enter a selection for a final brew volume, such as for a four-ounces, six-ounce, or twelve-ounce pour. Block S142 can thus set a volume of heating water to be portioned from the boiler 130 into the brew chamber 140 in Block S154 accordingly. In this example implementation, Block S142 can also calculate a mass, weight, or volume of grounds to be added to the brew chamber 140 based on the final brew volume selection, a water absorption capacity of the grounds, and/or a ratio of water to grounds specified in the recipe, etc., and Block S142 can then interface with Block S130 to prompt the user to dispense the calculated amount of coffee grounds into the brew chamber 140. For example, Block S142 can initiate the brew cycle by triggering Block S152 to heat water in the boiler 130 to a target brew temperature for the coffee bean and render on the display 112 a prompt to select a final brew volume from a set of final volumes (e.g., 4 oz, 6 oz, or 12 oz). Block S142 can then calculate the corresponding amount of coffee grounds and the volume of water for dispensation into the brew chamber 140 in Block S154, and Block S130 can render a text-based instruction on the display 112 to dispense the amount of coffee beans into the brew chamber 140 and to enter an input (e.g., by hitting a “Start” button) when completed. Once a user enters the appropriate input, and Block S154 can begin to dispense the calculated volume of water into the brew chamber 140. Alternatively, Block S142 can initiate the brew cycle by triggering Block S152 to preheat water in the boiler 130 to the brew temperate, render a prompt on the display 112 to manually dispense a preset amount of coffee grounds into the brew chamber 140, and then trigger Bock S154 to portion a preset volume of water into the brew chamber 140 in response to a user input into the coffee brewing machine 100 indicating the grounds were loaded into the brew chamber 140. However, Block S142 can function in any other way to initiate a brew cycle.

In this variation, first method S100 also includes Block S152, which recites heating water in a boiler 130 to a target temperature specified by the recipe. Generally, Block S152 controls a heating element coupled to a boiler 130 within the coffee brewing machine 100 to preheat water to the brewing temperature (or to another temperature specified in the recipe) prior to dispensation of a particular volume of water into the brew chamber 140. For example, Block S152 can interface with the temperature sensor 131 (e.g., a thermistor) and implement closed-loop feedback to control the heating element to heat and maintain water in the boiler 130 at the target temperature. However, Block S152 can function in any other way to control a temperature of water in the boiler 130 within the coffee brewing machine 100.

This variation of first method S100 also includes Block S154, which recites metering a volume of water from the boiler 130 into the brew chamber 140. Generally, Block S154 functions to displace a set volume of heated water—such as specified in the recipe or calculated in Block S142—into the brew chamber 140 by controlling one or more pumps and/or valves within the coffee brewing machine 100. In one implementation, Block S154 triggers a valve 132 between the boiler 130 and ambient air to close and powers an electromechanical pump for a particular period of time to pump air into the boiler 130, thereby displacing heated water from the boiler 130 in to the brew chamber 140. In this implementation, Block S154 can calculate the particular period of time from the target volume of water for dispensation into the brew chamber 140 such that the volume of heated water dispensed into the brew chamber 140 can be controlled and achieved without a flow sensor arranged between the boiler 130 and the brew chamber 140. In a similar implementation, the boiler 130 can be arranged at a height over the brew chamber 140, and Block S154 can trigger a valve 132 between the boiler 130 and the brew chamber 140 to open for a particular period of time (similarly calculated) to dispense a particular volume of heated water from the boiler 130 into the brew chamber 140 (also without interfacing with a flow sensor arranged therebetween). Alternatively, Block S154 can interface with a flow sensor and the pump 150 within the coffee brewing machine 100 to monitor a volume of heated water dispensed into the brew chamber 140 and to control the pump accordingly. However, Block S154 can control any other actuator within the coffee brewing machine 100 to portion a particular volume of water from the boiler 130 into the brew chamber 140 in any other suitable way.

In this variation, first method S100 further includes Block S160, which recites heating the brew chamber 140 to maintain the volume of water near the target temperature. Generally, Block S154 dispenses the volume of heated water into the brew chamber 140, Block S160 functions to control a heating element coupled to the brew chamber 140—based on an output of a temperature sensor 141 also coupled to the brew chamber 140—to maintain the temperature of the water and coffee grounds (i.e., the brew mixture) at the brew temperature. For example, Block S160 can implement closed-loop (e.g., proportional-integral-derivative, or PID) feedback to hold the temperature of the brew mixture at the target brew temperature.

Block S160 can also function to preheat the brew chamber 140 to the target temperature before Block 154 dispenses (any) heated water into the brew chamber 140. In particular, Block S160 can implement closed loop feedback to power the heating element according to the target temperature and to an output of the temperature sensor 141 coupled to the brew chamber 140, thereby heating the brew chamber 140 up to a temperature substantially identical to the temperature of heated water in the boiler 130. Thus, when Block S154 meters heated water from the boiler into the brew chamber 140, the temperature of the water and the temperature of the brew chamber can be substantially similar such that the temperature of the water—now exposed to the coffee grounds—does not shift substantially from the target brew temperature. Block S160 can preheat the brew chamber to substantially ensure that the grounds dispensed into the brew chamber are exposed to the heated water dispensed into the brew chamber 140 in Block S154 only at the (or within a threshold range of) the target brew temperature. Block S154 can thus delay dispensation of heated water from the boiler 130 into the brew chamber 140 until the temperature sensor 141 indicates that the brew chamber 140 can reached the target brew temperature and/or has leveled off at a temperature within a threshold range of the target brew temperature, such as within 0.5° C. of the target brew temperature for ten seconds.

Block S160 can further control the heating element to adjust the temperature of the brew mixture during the brew cycle according to a time-dependent temperature profile. For example, Block S152 can preheat water in the boiler 130 to an initial brew temperature, and Block S160 can control the heating element in the brew chamber 140 to hold the brew mixture at the initial temperature for a first period of time, then ramp the temperature of the brew mixture up to a second temperature at a particular rate (i.e., change in temperature per unit time), and finally hold the brew mixture at the second temperature before dispensation of the fluid from the brew chamber 140. However, Block S160 can control the heating element coupled to the brew chamber 140 to implement any other time-dependent brew temperature profile specified in the recipe set in Block S142 (or Block S140).

Block S160 can also record temperature data of the brew mixture and/or the brew chamber 140 during the brew cycle. For example, Block S160 can survey the temperature sensor 141 within the brew chamber 140 at a preset rate (e.g., 10 Hz) during the brew cycle and store measured temperatures locally in memory within the coffee brewing machine 100, such as with a tag or coffee source identifier identifying the brew cycle number and/or the coffee bean. Block S160 can additionally or alternatively upload the set of temperatures—with the coffee source identifier—to a remote database of brew data, such as in real-time or asynchronously (e.g., upon completion of the brew cycle). Block S152 can similarly track temperatures of water within the boiler 130 and store the data locally on the coffee brewing machine 100 and/or upload these data to the remote database, and these boiler 130 and brew chamber 140 temperature data can be analyzed locally or remotely to diagnose, troubleshoot, or preempt problems with operation of the coffee brewing machine 100.

However, Block S160 can function in any other way to manage the temperature of the brew mixture within the brew chamber 140 during the brew cycle.

This variation of first method S100 also includes Block S110, which recites displaying an agitation instruction at a first time during the brew cycle according to the recipe, and Block S172, which recites triggering a first alarm to cease agitation at a second time during the brew cycle according to the recipe. Generally, in this variation, Block S110 functions to prompt a user to agitate the brew mixture and Block S172 functions to prompt the user to cease agitation based on an agitation schedule specified in the recipe. For example, Block S154 can trigger a brew cycle timer (e.g., a countdown or a count-up timer) once Block S154 begins to dispense water into the brew chamber 140 or once Block S154 finishes dispensing the complete volume of water in to the brew chamber 140, and first method S100 can maintain and render the timer on the display 112. In this example, Block S110 can prompt a user to manually stir contents of the brewing chamber at a particular time during the brew cycle as specified by the recipe, and Block S172 can control an audio driver 114 (e.g., a speaker) within the coffee brewing machine 100 to sound an audible alarm to alert the user to cease stirring once a stirring period specified in the recipe elapses. Block S110 can also render a textual and/or image-based (e.g., a two-color dot-matrix cartoon) instruction for a type of agitation, such as stirring in a circular motion, stirring in a lateral motion, stirring in a zigzag motion, or punching down the grounds from the surface of the brew mixture, such as defined in the recipe for the agitation period. Block S110 can additionally or alternatively deliver an audible alarm to prompt the user to begin stirring, such as through an audio driver 114 or speaker 114 within the coffee brewing machine 100, and Block S172 can additionally or alternatively deliver a visual cue on the display 112 to cease agitation. Block S172 (and other Blocks of the first method S100) can also render flashes on the display or otherwise modulate an intensity of a backlight of the display to provide a visual cue for a requested manual action at the coffee brewing machine 100. However, Block S110 and Block S172 can cooperate in any other way to guide a user in manually agitating contents of the brew chamber 140—such as in a particular agitation pattern—and ceasing agitation based on an agitation schedule specified in the recipe.

In this variation, first method S100 can further include Block S174, which recites displaying a second agitation instruction at a fourth time during the brew cycle according to the recipe, the fourth time between the second time and the third time. Generally, Block S174 implements functionality similar to Blocks S170 and 172 to prompt the user to execute a second agitation schedule. For example, Blocks S170 and S172 can cooperate to prompt the user to stir the contents of the brew chamber 140 in a circular motion over a period of ten seconds shortly after Block S154 dispenses the volume of heated water in to the brew chamber 140 (e.g., from 0:10 to 0:20 on the brew cycle timer), and Block S174 can prompt the user to punch down the brew mixture for ten seconds following a fifty-second rest period (e.g., from 1:10 to 1:20 on the brew cycle timer). Block S174 can thus deliver audible and/or visual prompts to begin and then cease a second agitation cycle over a particular period of time during the brew cycle and as defined in the recipe. However, first method S100 can deliver audible and/or visual instructions to prompt the user to complete any other number and/or type of agitation cycles during the brew cycle.

In this variation, first method S100 further includes Block S180, which recites triggering a second alarm to dispense fluid from the brew chamber 140 at a third time during the brew cycle according to the recipe. Generally, Block S180 functions to prompt the user to manually begin dispensation of fluid (i.e., brewed coffee) from the brew chamber 140 upon completion of a water-to-ground contact time specified in the recipe. For example, Block S180 can render an textual and/or cartoon-based instruction on the display 112 and/or sound an audible alarm to prompt the user to open a manual valve 142 at a base of the coffee brewing machine 100, thereby releasing fluid from the brew chamber 140 and into a vessel below, such as directly into a coffee mug, into a coffee pot, or into a thermos. In this example, manual actuation of the valve 142 can enable fluid to passively exit the brew chamber 140 (i.e., via gravity). However, for the coffee brewing machine 100 that also includes a manually-operated plunger 170, such as shown in FIG. 3, Block S180 can also prompt to open the valve 142 and to then actuate the plunger 170 into the brew chamber 140, thereby relatively rapidly evacuating fluid from the brew chamber 140 and terminating contact between the fluid and the coffee grounds, such as specified in the recipe for the coffee bean. For example, Block S180 can render on the display 112 a textual command to actuate the plunger 170. Block S180 can also interface with a linear or arcuate sensor coupled to the plunger 170 or to a pivoting plunger lever 172, respectively, to track the position of the plunger 170 and to guide displacement of the plunger 170 during actuation by the user, such as by displaying visual indicators of a target position and an actual position of the plunger 170 and prompting the user to align the visual indicators of the target position and the actual position of the plunger 170 through manual displacement of the plunger 170. Similarly, once substantially all fluid has passively drained from the brew chamber 140, Block S180 can prompt the user to actuate the plunger 170 into the brew chamber 140 to evacuate any remaining fluid therefrom. However, Block S180 can function in any other way to prompt the user to manually release fluid from the brew chamber 140.

In this variation, Blocks of first method S100, such as Blocks S170, S172, and S180, can also interface with a local coffee grinder to adjust brew parameters for the brew cycle. For example, Block S130 can download a grind setting and grind hours (or wear) of a local coffee grinder and estimate a profile and size distribution of grounds loaded into the brew chamber 140 for the current brew cycle, and Blocks S170 and S172 can implement methods similar to Block S140 described above to adjust the first time for displaying the agitation instruction and the second time for triggering the first alarm to cease agitation, respectively, during the brew cycle according to the profile and size distribution of the coffee grounds. Block S180 can similarly adjust the third time for triggering the second alarm based on the profile and size distribution of the coffee grounds loaded into the coffee brewing machine 100 for the brew cycle.

Furthermore, Blocks S142, S170 S172, S174, and/or S180, etc. can additionally or alternatively deliver audible and/or visual prompts for inputting brew parameters (e.g., a final brew volume) and for guiding manual realization of brew parameters (e.g., filter type, agitation, dispensing of fluid from the brew chamber 140) through an external electronic device in communication with the coffee brewing machine 100. For example, the coffee brewing machine 100 can communication with a nearby mobile computing device (e.g., a smartphone, a tablet) over Wi-Fi or Bluetooth communication protocol, and Blocks S142, S170 S172, S174, and S180 can deliver audible and visual prompts to a user through a speaker 114 and the display 112 (e.g., a touchscreen), respectively, integrated into the mobile computing device. In this example, Blocks S142, S170 S172, S174, and/or S180 can also receive inputs from the user via the mobile computing device, such as through a touchscreen integrated into the mobile computing device. However, Blocks of first method S100 can interface with any other actuator (e.g., display, speaker) within or outside the coffee brewing machine 100 to communicate data to the user and to receive inputs from the user.

In this variation, first method S100 can further prepare the coffee brewing machine 100 for a subsequent brew cycle with the same coffee bean (e.g., with coffee beans from the same roast batch and/or from the same roaster) or with a different coffee bean (e.g., with coffee beans from a different roast batch and/or from a different roaster).

In this implementation, first method S100 can include Block S190, which recites refilling the boiler 130. For example, Block S190 can control a valve 132 and/or the pump 150—similar to Block S154 described above—to transfer water from the reservoir 120 (i.e., a holding tank) into the boiler 130 to return the water level in the boiler 130 to a particular level following dispensation of heated water from the boiler 130 in Block S154.

Blocks of first method S100 can then repeat to brew a second volume (e.g., a cup, a pot) of coffee. In one example in which first method S100 brews a second cup of coffee from a different coffee bean, Block S110 can receive a second coffee source identifier, Block S120 can retrieve a second recipe for a second coffee bean based on the second coffee source identifier, and Block S142 can initiate a second brew cycle through techniques similar to those described above. Block S152 can then heat water in the boiler 130 to a second target temperature according to the second recipe, Block S154 can meter a second volume of water from the boiler 130 into the brew chamber 140, and Block S160 can heat the brew chamber 140 to maintain the second volume of water near the second target temperature. Finally, Block S110 can display a second agitation instruction at a first time during the second brew cycle according to the second recipe, Block S172 can trigger a first alarm to cease agitation at a second time during the second brew cycle according to the second recipe, and Block S180 can trigger a second alarm to dispense fluid from the brew chamber 140 at a third time during the second brew cycle according to the second recipe. Blocks of first method S100 can thus repeat to brew sequential volumes of coffee from the same or different coffee beans based on preset recipes corresponding to coffee beans selected for each brew cycle.

However, in this variation, Blocks of first method S100 can function in any other way to semi-automatically implement parameters specified in a recipe for a particular coffee bean selected for brewing on a coffee brewing machine.

8. Second Method and Applications

As shown in FIG. 4, a method for transmitting brewing recipes to coffee brewing machines includes: collecting a coffee source identifier corresponding to a coffee roast batch in Block S210; loading a set of brew parameters assigned to the coffee roast batch in Block S220, the set of brew parameters including a brew temperature and a steep time; identifying a particular coffee brewing machine in a set of coffee brewing machines in Block S230, the particular coffee brewing machine designated to brew coffee from the coffee roast batch; and transmitting the set of brew parameters with the coffee source identifier to the coffee brewing machine 100 over a computer network in Block S240, the set of brew parameters defining a recipe for brewing coffee from the coffee roast batch at the coffee brewing machine 100.

Generally, second method S200 functions to push a recipe for brewing a volume of coffee with a particular coffee bean from an entity associated with roasting the particular coffee bean to a particular coffee brewing machine designated to brew coffee with the particular coffee bean. The particular coffee brewing machine can then execute the first method described above to implement the recipe thus received. For example, once a coffee roaster roasts a batch of coffee beans, the coffee roaster can define, refine, or tweak a brew recipe specific to the roast batch, such as a brew temperature, a steep time (i.e., brew duration), an agitation schedule, a grind profile or grind size, and/or a coffee ground-to-water ratio, etc. In this example, the roaster can brew test cups of coffee on a “master” coffee brewing machine, which can record brewing parameters selected or implemented by the roaster during the test tests, and the roaster can select a preferred or favorite test cup. The master coffee brewing machine can then execute Block S220 of second method S200 to generate a recipe for the particular coffee bean based on the set of parameters recorded for the selected test cup, execute Block S230 to identify coffee brewing machines affiliated with the roaster (e.g., coffee brewing machines in coffee shops that serve coffee beans from the roaster), and execute Block S240 of second method S200 to push (i.e., automatically transmit) the recipe to the identified coffee brewing machine(s) with an identifier of the corresponding coffee bean. Thus, a coffee brewing machine that received the recipe can execute the first method described above to implement the recipe when the corresponding coffee bean is scanned or selected for a subsequent brew cycle at the coffee brewing machine 100.

Blocks of second method S200 can thus be implemented on coffee brewing machine, such as the coffee brewing machine 100 described above and shown in FIG. 3 or a master coffee brewing machine as described above. Blocks of second method S200 can additionally or alternatively be implemented on a remote computer system, such as a computer network or a remote server.

Block S210 of second method S200 recites collecting a coffee source identifier corresponding to a coffee roast batch. Generally, Block S210 of second method S200 functions to receive an identifier for the present coffee bean and to pair this identifier with the recipe specific to the coffee bean and generated in Block S220. Block S210 can therefore implement methods or techniques similar to those of Block S110 described above to collect the coffee source identifier. For example, Block S210 can receive an optical scan of a bar code, a QR code, a serial number, or any other symbol printed or arranged on a package containing or designated to contain the coffee bean, and Block S210 can pair this identifier with the recipe generated in Block S220. In another example, Block S210 can receive a batch number, a serial number (e.g., a unique ID) or an other alphanumeric sequence scanned from an RFID tag arranged on or designated for a package containing the coffee bean, and Block S210 can pair this alphanumeric sequence with the recipe generated in Block S220. However, Block S210 can collect an identifier of the coffee bean in any other form and in any other way and pair this identifier with a particular batch, roast, or group of coffee beans.

Block S220 of second method S200 recites loading a set of brew parameters assigned to the coffee roast batch, the set of brew parameters including a brew temperature and a steep time. Generally, Block S220 functions to collect brew parameters selected by the roaster for the coffee bean (e.g., the roast or roast batch of coffee beans) and to aggregate these brew parameters into a recipe for the coffee bean.

In one implementation, Block S220 records brew parameters previously applied at a “master” coffee brewing machine during a test brew cycle for the coffee bean. For example, Block S220 can collect a brew temperature and a steep time applied at the master coffee brewing machine during a previous test brew cycle, the previous test brew cycle selected by the roaster as the preferred or favorite test cup for the coffee bean.

Block S220 can also collect data corresponding to manual inputs supplied by the roaster during the selected test brew cycle and incorporated these manual inputs into the recipe. For example, Block S220 can record a first time during the selected test brew cycle at which the roaster begins agitation of fluid within a brew chamber 140 of the master coffee brewing machine, a second time at which the roaster ceases agitation of the fluid, and a steep time corresponding to an elapsed time between initiation of the text brew cycle and dispensation of fluid from the brew chamber 140 of the master coffee brewing machine. Block S220 can thus automatically define agitation start and stop times and steep time in the recipe for the coffee based on these manual inputs recorded at the master coffee brewing machine during the test brew cycle corresponding to the selected test cup of coffee brewed with the coffee bean.

Block S220 can additionally or alternatively prompt the roaster to manually enter specific agitation instructions for detected agitations periods during the selected test brew cycle, and Block S220 can incorporate these data into the recipe accordingly.

Alternatively, Block S210 can prompt manual selection or entry of the coffee source identifier, Block S220 can prompt manual selection or entry of brew parameters for the coffee bean, and Blocks S210 and S220 can cooperate to generate the recipe associated with the coffee source identifier and defining the selected or entered brew parameters. In one example, Block S210 can prompt the roaster to enter a batch number of the coffee bean or to select a sequence of coffee source identifiers of coffee bags allocated for the coffee bean. In another example, Block S220 can prompt the roaster to manually enter agitation data for the coffee bean, such as agitation type, agitation start time, and/or agitation duration for one or more agitation periods for a brew cycle with the coffee bean. In this example, Block S220 can also prompt the roaster to enter a total time for the brew cycle, a volume of water to dispense into the brew chamber 140, and/or any other parameter for a brew cycle specific to the coffee bean, and Block S220 can generate the recipe for the coffee bean (e.g., for the roast batch, for the roaster, etc.) accordingly.

Block S230 of second method S200 recites identifying a particular coffee brewing machine in a set of coffee brewing machines, the particular coffee brewing machine designated to brew coffee from the coffee roast batch. Generally, Block 230 functions to automatically populate a list of coffee brewing machines to which to push the recipe for the coffee bean, the selected coffee brewing machines likely or possibly to brew the coffee bean in the future. In particular, Block S230 identifies coffee brewing machines operated by the roaster and/or operated by entities affiliated with roaster (e.g., by contract) and therefore designated as coffee brewing machines that may brew coffee beans roasted and supplied by the roaster.

In one implementation, Block S230 accesses a list of coffee brewing machines associated with one or more cafés or shops designated to receive the roast batch. For example, the roaster can roast a single batch of coffee designated for a single coffee shop, and Block S230 can access an order form for the roast batch (such as stored locally on the master coffee brewing machine), identify the designated coffee shop for the order from the order form, and retrieve a list of coffee brewing machine operated by the designated coffee shop, such as from a remote server or database containing location and/or shop affiliation data for each coffee brewing machine configured to execute the first method. In another example, Block S230 can retrieve a list of all coffee brewing machines operated by coffee shops affiliated with the coffee roasters, such as stored locally on the master coffee brewing machine or remotely on a database owned by the roaster.

Block S230 can collect a list of one or more unique addresses, each address affiliated with a unique coffee brewing machine. For example, Block S230 can collect an Internet Protocol (IP) address or an email address assigned to each identified coffee brewing machine. However, Block S230 can identify affiliated coffee brewing machines and populate a list of any other suitable type of addresses for the identified coffee brewing machines in any other suitable way.

Block S240 of second method S200 recites transmitting the set of brew parameters with the coffee source identifier to the coffee brewing machine 100 over a computer network, the set of brew parameters defining a recipe for brewing coffee from the coffee roast batch at the coffee brewing machine 100. Generally, Block S240 functions to push automatically the recipe generated in Block S220—tagged with the coffee source identifier collected in Block S210—to one or more coffee brewing machines identified in Block S230 such that these coffee brewing machines are already loaded with the recipe specific to the coffee bean when brewing cycles with the coffee bean are later initiated at the coffee brewing machines. For example, Block S240 can upload the recipe, the coffee source identifier, and the list of addresses for the identified coffee brewing machines to a computer network, such as over Wi-Fi, cellular, or Ethernet communication, and the computer network can distribute the recipe and the coffee source identifier to the specified coffee brewing machines.

In one implementation, Block S240 transmits the recipe and the coffee source identifier for a new coffee bean—such as a new type of coffee bean or a new roast batch of the same type of coffee bean now available from the roaster and/or designated for a particular café, coffee shop, or coffee brewing machine, etc.—to the identified coffee brewing machines. In this implementation, the recipe thus defines a new recipe specifying a set of brew parameters for a new type, batch, or source, etc. of coffee bean.

In another implementation, Block S240 transmits the recipe and the coffee source identifier for an existing coffee bean corresponding to an earlier recipe previously loaded onto one or more coffee brewing machines, such as for an existing type of coffee bean supplied by the roaster or a previous roast type or roach batch provided by the roaster. Thus, in this implementation, Block S240 can distribute the recipe to one or more coffee brewing machines to override a previous recipe (i.e., a previous set of brew parameters) associated with the coffee source identifier and stored in memory on the coffee brewing machines.

However, Blocks S210, S220, S230, and S240 of second method S200 can cooperate in any other way to generate a new recipe for a new coffee source identifier and/or to update an existing recipe for a current coffee source identifier and to distribute (i.e., push) the new and/or updated recipe to associated coffee brewing machines.

9. Apparatus

As shown in FIG. 8, an apparatus 200 for brewing a beverage includes: a reservoir 210 configured to contain a volume of fluid; a boiler 220 including a heating element 222 and a fluid pickup 224, a portion of the boiler 220 arranged vertically below the reservoir no; a brew chamber 230; a first contactless valve 240 operable in a first mode and in a second mode, the first contactless valve 240 open in the first mode to communicate fluid from the reservoir 210 into the boiler 220 and closed in the second mode; a second contactless valve 250 operable in the first mode and in the second mode, the second contactless valve 250 open in the first mode to evacuate air from the boiler 220 and closed in the second mode; and an air pump 260 pumping air into the boiler 220 in the second mode to displace fluid from the boiler 220, via the fluid pickup 224, into the brew chamber 230.

Generally, the apparatus 200 functions as a hot-beverage brewing machine that accurately and repeatably heats water, meters water into a brew chamber, and maintains the temperature of the heated water as the beverage is brewed according to a brew recipe, such as above. In particular, configurations of and couplings between components within the apparatus 200 enable substantially precise heating, metering, and brewing of a hot beverage on a serving-specific basis with a modicum of sensors, actuators, and materials in contact with beverage ingredients throughout the brewing process. For example, the apparatus 200 can receive specific initial water and final brewing temperatures and brewing water volume for a particular type of coffee bean, and the apparatus 200 can implement these brewing parameters with two valves, one air pump, two temperature sensors, and a binary fluid level sensor 226 with the water and coffee grounds in contact with only air, stainless steel (or chrome-plated brass), and food-safe polymers during the brewing process.

The apparatus 200 is described herein in the context of brewing coffee, though the apparatus 200 can additionally or alternatively be configured to brew tea, cider, hot chocolate, mulled wine, hot toddy, or any other brewed beverage.

9.1 Reservoir

The reservoir 210 of the apparatus 200 is configured to contain a volume of fluid. Generally, the reservoir 210 functions to hold fresh water, such as cold or room-temperature tap water, until a brewing event is initiated, as which point water is directed from the reservoir 210 into the boiler 220 for heating before entering the brew chamber 230 for mixing with steeping material (e.g., coffee grounds). The reservoir 210 can have a fluid capacity of a signal cup of brewed beverage, such as six ounces. Alternatively, the reservoir 210 can have a fluid capacity of multiple servings of the brewed beverage and a “float” (i.e., excess) volume, such as twenty ounces, enough for three cups of coffee and a two-ounce float volume).

The reservoir 210 can be open to the ambient such that, when the first contactless valve 240 is opened, fluid (e.g., water) can gravity feed from the reservoir 210 into the boiler 220. The reservoir 210 can also include a flap or door accessible by a user to manually fill the reservoir 210. Alternatively, the reservoir 210 can be fluidly coupled to a water line tap and include a mechanical, electromechanical, acoustic, or other type of float to automatically maintain fluid within the reservoir 210 at a suitable level. The reservoir 210 can also be removed from the apparatus 200 and/or opened to enable manual cleaning, such as of mineral deposits left from filling with tap water.

9.2 Boiler

The boiler 220 of the apparatus 200 includes a heating element 222 and a fluid pickup 224, wherein a portion of the boiler 220 is arranged vertically below the reservoir 210. Generally, the boiler 220 functions to heat fluid dispensed from the reservoir 210 prior to filling the brew chamber 230 and brewing the beverage. The boiler 220 includes a heating element 222 to heat fluid and is arranged below the reservoir 210 in the vertical plane such that fluid in the reservoir 210 can be dispensed into the boiler 220 via gravity and therefore without the need for a pump or actuator other than the first and second contactless valves 240, 250.

In one implementation, the boiler 220 includes an inlet arranged at or proximal its effective bottom. This configuration can serve to reduce opportunity for vapor lock within a first tube 242 (e.g., a first elastic tube) (shown in FIGS. 8 and 9) between the boiler 220 and the reservoir 210, such as due to steam or heated fluid rising back into the first tube 242. The first tube 242 can also be removably (i.e., transiently) coupled to the inlet of the boiler 220 such that the first tube 242 can be removed from the inlet to drain the boiler 220, such as for cleaning. The boiler 220 can also include an outlet with a pickup near its effective bottom such that substantially all of the fluid can be pumped out of the boiler 220. In this implementation, the first tube 242 can define a circular internal cross-section that enables self-priming such that the first tube 242 fills substantially completely without assistance (e.g., a pump) and without air bubbles when fluid (e.g., water) is added to the empty reservoir. For example, the first tube 242 can be an elastic silicone tube with a 3/16″ internal diameter.

The heating element 222 can be arranged outside the boiler 220 vessel and thus heat fluid within the boiler 220 indirectly, as shown in FIG. 9. For example, the boiler 220 can include a stainless steel (i.e., food-safe) vessel with an external heating element arranged circumferentially about the vessel. In this example, the heating element 222 can include a quartz heating element, an induction heating element, or any other suitable electrical heater, and the boiler 220 vessel can be of any other suitable material capable of conducting heat from the heating element 222 into the fluid within. Alternatively, the heating element 222 can include a food-safe immersion heater in direct contact with the fluid.

As shown in FIG. 9, the boiler 220 can also include a temperature sensor 228, such as a thermocouple, to track the temperature of fluid within the boiler 220. The temperature sensor 228 can include a probe that directly contacts fluid within the boiler 220, or the temperature sensor 228 can output a signal corresponding to a temperature of the boiler 220 vessel and a processor 290 (described below) within the apparatus 200 can correlate this signal with a temperature of the fluid. Alternatively, the temperature sensor 228 can include an optical (e.g., infrared) or other suitable type of non-contact temperature sensor 228. For example, the non-contact temperature sensor 228 can be arranged on or through the top of the boiler 220 and can be directed downward toward fluid within the boiler 220 to remotely detect the temperature of the fluid. The processor 290 can then implement closed-loop feedback to control power supplied to the heating element 222 to heat the water based on outputs of the temperature sensor 228 to achieve a target (steady-state) temperature of the fluid. For example, the processor 290 can toggle power supplied to the heating element 222 according to a proportional-integral-derivative (PID) controller and the detected temperature of the water within the boiler 220 to hit a target initial water temperature for a particular coffee recipe (e.g., 195° F. for a medium roast from a Texan coffee roaster and 191° F. for a dark roast from a Californian coffee roaster). In this example, the processor 290 can load a brew recipe, including the initial water temperature, for a particular coffee, such as above. Alternatively, the processor 290 can control the heating element 222 to achieve a static target steady-state temperature (e.g., constant across all coffee types) or set manually by a user before a brewing event.

However, the boiler 220 can include a vessel of any other shape or material and/or any other suitable type of heating element 222 arranged in any other way. The processor 290 can also manipulate an output of any other suitable type of arrangement of temperature sensor 228 to control the heating element 222.

9.3 Valves

The first contactless valve 240 of the apparatus 200 is operable in a first mode and in a second mode, wherein the first contactless valve 240 is open in the first mode to communicate fluid from the reservoir 210 into the boiler 220 and closed in the second mode. Generally, the first contactless valve 240 is arranged between the reservoir 210 and the boiler 220 and is configured to control dispensation of fluid from the reservoir 210 into the boiler 220. In particular, the first contactless valve 240 functions to meter the volume of fluid dispensed from the reservoir 210 into the brew chamber 230.

As described above and shown in FIG. 8, the reservoir 210 can include an outlet near its effective bottom, and the boiler 220 can include an inlet near its effective bottom. In this implementation, the output of the reservoir 210 and the inlet of the boiler 220 can be connected via a first collapsible elastic (or “soft”) food-safe tube (or tubing, pipe, duct, conduit, etc.), and the first contactless valve 240 can be arranged over a portion of the first tube 242 and include an actuator operable in two modes. In the first mode, the actuator is retracted, rendering the first tube 242 open such that fluid can flow from the reservoir 210, through the first tube 242, and into the boiler 220 (e.g., via gravity). In the second mode, the actuator advances into the first tube 242, thereby “pinching” (i.e., deforming, obstructing) the first tube 242 and blocking flow of fluid between the reservoir 210 and the boiler 220. For example, the first contactless valve 240 can include a bi-state electromechanical solenoid that defaults to the second mode to restrict fluid flow from the reservoir 210 into the boiler 220. Therefore, if the first contactless valve 240 malfunctions, it may default to the second mode such that the reservoir 210 is not fully drained into the boiler 220. By pinching the first tube 242 to control water flow therethrough rather than passing fluid through a flow-through valve, contact with the fluid is limited to only the interior surface of the first tube 242 between the reservoir 210 and the boiler 220 and chance of leakage is reduced due to lack of any fluid junction between the reservoir 210 and the boiler 220. However, the first contactless valve 240 can include any other suitable type of actuator or actuator configuration, such as a pneumatic (tube) twist valve or an electromagnetic (tube) pinch valve.

In one implementation, the second contactless valve 250 is first opened to allow pressure inside the boiler 220 to equalize with ambient, and the first contactless valve 240 is then opened (i.e., transitioned into the first mode) to enable fluid to feed from the reservoir 210 into the boiler 220 via gravity, as shown in FIG. 11A. In one example, the processor 290 can hold the first contactless valve 240 in the open state for a preset period corresponding to a minimum duration of time to fully drain a full reservoir into an empty boiler. However, the first contactless valve 240 can be held in the open state for any other length of time to fill the boiler 220. Alternatively, a bi-state fluid level sensor 226 within the boiler 220 can trip or trigger once a fluid level inside the boiler 220 reaches a preset volume, and the processor 290 controlling the first contactless valve 240 can close the valve to cease fluid flow from the reservoir 210 to the boiler 220 when the fluid level sensor 226 trips. The fluid level sensor 226 can therefore be an a bi-state or bi-stable electromechanical fluid level sensor 226, though the boiler 220 can include any other suitable type of contact or contactless fluid level sensor 226, the output of which the processor 290 can implement to control the position of the first contactless valve 240 in any other suitable way. The first contactless valve 240 can also be opened for any other period of time or controlled according to any other parameter or sensor output to meter fluid (i.e., liquid) flow from the reservoir 210 into the boiler 220.

The second contactless valve 250 of the apparatus 200 is operable in the first mode and in the second mode, wherein the second contactless valve 250 is open in the first mode to evacuate air from the boiler 220 and closed in the second mode. Generally, the second contactless valve 250 is arranged between the boiler 220 and ambient and is operable between a first and a second mode to control fluid communication displacement into and out of the boiler 220. In particular, in the first mode, the second contactless valve 250 is operable in the first mode to open an exhaust vent in the boiler 220 to enable evacuation of air from the boiler 220 as fluid is dispensed from the reservoir 210 into the boiler 220. The second contactless valve 250 can also remain open (i.e., in the first mode) while the boiler 220 heats the fluid within to prevent an excess pressure increase within the boiler 220, such as if failure of a temperature sensor 228 within the boiler 220 causes a boiler over-temperature event. The second contactless valve 250 is also operable in the second mode to close the exhaust vent such that, when the first contactless valve 240 is also closed, the air pump 260 can pressurize the boiler 220, thereby displacing heated fluid from the boiler 220 into the brew chamber 230 via a fluid conduit 252 (shown in FIG. 11D and described below). The second contactless valve 250 can therefore cooperate with the first contactless valve 240 to fill the boiler 220 with fluid from the reservoir 210, and the second contactless valve 250 can also cooperate with the first contactless valve 240 and the air pump 260 to displace heated water from the boiler 220 into the brew chamber 230 by pressurizing the boiler 220.

As described above and shown in FIG. 9, the boiler 220 can include a pickup near its effective bottom, which is coupled to the brew chamber 230 via a fluid conduit, and the boiler 220 can also include an exhaust vent—near its effective top—to which a second collapsible elastic food-safe tube 252 (e.g., a second elastic tube) connects and vents to ambient. In this implementation, the second contactless valve 250 can be arranged over a portion of the second tube 252 and include an actuator operable between the first and second modes. In the first mode, the actuator is retracted, rendering the first tube 242 open such that air can exit the boiler 220 to ambient via the exhaust vent as fluids flows from the reservoir 210, through the first tube 242, and into the boiler 220 (e.g., via gravity). Furthermore, in the second mode, the actuator advances into the second tube 252, thereby pinching the second tube 252 and Mocking exhaustion of air from the boiler 220 to ambient. In one example, like the first contactless valve 240, the second contactless valve 250 includes a bi-state electromechanical solenoid that defaults to the first mode such that air may still exhaust from the boiler 220 in the event that the second contactless valve 250 malfunctions.

In the foregoing implementation, the exhaust end of the second tube 252 (opposite the boiler 220) can also be coupled to a muffle and/or to a condenser that cools steam or heated air exiting the boiler 220 through the exhaust vent. In a variation of the apparatus 200 that includes a drip tray 270 (described below), the exhaust end of the tube (and/or the muffler or condenser) can terminate at the drip tray 270 to collect moisture exhausted from the boiler 220. However, the second contactless valve 250 can include any other suitable actuator or include any other type of valve to control exhaustion of gas from the boiler 220.

9.4 Air Pump

The air pump 260 of the apparatus 200 is configured to displace air into the boiler 220 in the second mode to communicate fluid from the boiler 220, via the fluid pickup 224, into the brew chamber 230. Generally, the air pump 260 functions to meter heated fluid from the boiler 220 into the brew chamber 230 by feeding pressurized air into the boiler 220 to displace heated water into the boiler 220 pickup, then through the fluid conduit and into the brew chamber 230 when the first and second contactless valves 240, 250 are closed. The air pump 260 can be coupled to the boiler 220 directly, such as via a hard or a soft line, or “T'ed” into the second tube 252 between the second contactless valve 250 and the boiler 220, as shown in FIG. 9.

Once the first and second contactless valves 240, 250 are closed, the air pump 260 can be run for a specific period of time to meter a prescribed volume of heated water into the brew chamber 230. In one implementation, the processor 290 controls the heating element 222 in the boiler 220 to always heat water in the boiler 220 to 195° F. and runs the pump 260 for a static preset period of time, such as 19.6 seconds to dose 250 mL of water at 195° F. into the brew chamber 230. Alternatively, the processor 290 can dynamically set the run time of the pump 260 to achieve dispensation of a specific fluid volume from the boiler 220 into the brew chamber 230. For example, a brew recipe for a coffee bean can prescribe a particular brew temperature (e.g., 186.8° F., 189.1° F., or 194.4° F., etc.), and the processor 290 can set the run time for the pump 260 accordingly by inserting the prescribed brew temperature (or the measured temperature of the water in the boiler 220) and specific fluid volume into an algorithm (e.g., a second-order polynomial) that outputs a pump run time. In this example, the algorithm can mathematically define a temperature response of a volume of air trapped within the boiler 220 and thus account for an amount of time to fully displace the volume of water from the boiler 220 based on the actual or target temperature of water in the boiler 220 and the output flow rate of the pump 260. The processor 290 can then add a constant fluid volume to the target fluid volume to compensate for the fixed volume of the pickup and the conduit between the boiler 220 and the brew chamber 230. The processor 290 can therefore adjust the pump 260 run time on a per-dose basis to compensate for different fluid temperatures prescribed in various brew recipes.

In the foregoing implementation, the apparatus 200 can be calibrated to determine the constant pump run time to displace the target volume from the boiler 220. In one example implementation, the processes controls the valves and pump to dispense fluid into the brew chamber 230 at various pump run times and fixed temperatures, receives actual dispense fluid weight measurements from a user for each pump run time, and infers a volume of the conduit between the boiler 220 and the brew chamber 230 based on the weight measurements of fluid dispensed at the various pump run times. In this implementation, the processor 290 then controls the pump 260 and the valves to dispense fluid into the brew chamber 230 at various boiler temperatures and a fixed pump run time, receives actual dispense fluid weight measurements from the user for each boiler temperature, and infers the temperature response of air in the boiler 220 accordingly. In another example implementation, the apparatus 200 is calibrated manually to set the pump 260 run time that corresponds to a specific volume of fluid metered into the brew chamber 230. In one example, the processor 290 prompts the user—through a user interface 292 (shown in FIG. 10)—to run the air pump 260 until a volume of fluid fills the brew chamber 230, to weigh the volume of volume from the brew chamber 230, to reduce the air pump 260 run time if the weight of the metered fluid exceeds a target weight or to reduce the air pump 260 run time if the weight of the metered fluid is less than the target weight, and to repeat until the target weight is reached. Similarly, the apparatus 200 can include an integrated scale to automatically measure a mass or weight of fluid metered into the brew chamber 230 and thus automatically execute the foregoing method. In another example, the brew chamber 230 includes a transparent (e.g., glass) chamber with a visible volume demarcation, and the processor 290 prompt the user—through the user interface 292—to run the air pump 260 until the volume of fluid in the brew chamber 230 reaches the volume demarcation. In this example, the processor 290 can store the run time for the air pump 260 and apply this run time to subsequent brewing events. The processor 290 can also prompt the user to repeat this process one or more times, then average the corresponding air pump run times, and apply the average run time to subsequent brewing events. In yet another example, the apparatus 200 includes a barometric pressure sensor, and the processor 290 automatically calibrates the run time for the air pump 260 to achieve a target brew chamber fill volume based on an output of the barometric sensor. In this example, the processor 290 can apply an output for the barometric sensor before each brewing event to calculate a new (or adjusted) air pump run time for each new brewed beverage (e.g., for each new cup of coffee brewed with the apparatus 200). The apparatus 200 can similarly include a GPS sensor—or interface with a mobile computing device (e.g., a smartphone or tablet) nearby, which includes a GPS sensor—to identify the current location of the apparatus 200, retrieve a barometric pressure of the current location from a location-based barometric pressure database, and adjust the run time for the air pump 260 according apply to the retrieved barometric pressure. Alternatively, a user can manually enter a geographic location and/or altitude of the apparatus 200, and the apparatus 200 can further retrieve relevant environmental (e.g., pressure, temperature) data from a remote server accordingly.

The air pump 260 can run for a preset or predefined period of time to displace a preset volume of heated fluid into the brew chamber 230, as shown in FIG. 11D. This volume can be static or constant for all beverages, such as six ounces, or this volume can be manually selected by a user from a set of available beverage volumes, such as two, four, six, eight, and twelve ounces, or selected by the user on a scale defined in grams of fluid. The fluid volume can alternatively, be automatically selected, such as based on a brew recipe selected by the user, pushed to apparatus through a web interface, or loaded into the apparatus 200 via a QR or barcode scanner. For example, the brew recipe can specify a ratio of fresh coffee grounds to fluid volume for a particular coffee type, the processor 290 can prompt the user to add a specific mass of fresh coffee grounds to the brew chamber 230, and the air pump 260 can meter a specific corresponding volume of fluid into the brew chamber 230.

The conduit configured to feed heated fluid from the boiler 220 to the brew chamber 230 can define an internal passage of substantially small cross-sectional area to enable accurate and repeatable dispensation of a particular volume (or mass, weight, etc.) of heated fluid from the boiler 220 into the brew chamber 230. For example, the conduit can define a circular bore approximately 0.125″ in diameter, which may maintain laminar fluid flow through the conduit over a wide range of fluid pressures supported by the air pump 260.

The brew chamber 230 can also be offset vertically above the boiler 220 such that fluid trapped in the conduit once the brew chamber 230 reaches a target fill volume can drain back into conduit, as shown in FIG. 8. Heated water can therefore pass directly from the boiler 220 into the brew chamber 230 via the conduit without passing through a valve, pump, meter, or other device. Rather, the first contactless valve 240 between the reservoir 210 and the boiler 220, the second contactless valve 250 connected to an exhaust vent on the boiler 220 and ambient, and the air pump 260 coupled to the boiler 220 and to ambient can cooperate to meter heated water from the boiler 220 directly into the brew chamber 230.

9.5 Brew Chamber

The brew chamber 230 of the apparatus 200 is configured to hold a steeping material and to receive heated fluid dispensed from the boiler 220. Generally, the brew chamber 230 functions as a holding vessel for steeping material (e.g., loose coffee grounds) and heated fluid as the beverage brews.

The brew chamber 230 can define an outlet at its effective low point and include a brew chamber valve 234 (or “dispense valve”) coupled to its outlet, as shown in FIG. 8. Thus, the beverage can steep in the brew chamber 230 until the brew chamber 230 valve is opened, thus releasing the brewed beverage from the brew chamber 230, such as by gravity or through increased pressure within the brew chamber 230, as described below. For example, the brew chamber 230 valve can include a butterfly valve that is actuated manually to close the brew chamber 230 prior to dispensation of heated fluid into the brew chamber 230 and to open the brew chamber 230 to a consumer vessel (e.g., a mug, a coffee cup, a thermos, etc.) below.

The brew chamber 230 can also include a mechanism to pressurize the brew chamber 230. In one implementation, the brew chamber 230 includes a piston 282 and a manually-operated lever 280 that displaces the piston 282 within the brew chamber 230, as shown in FIG. 8. In this implementation, the piston 282 functions to seal against a wall of the brew chamber 230, and the lever 280—coupled to the piston 282—enables a user to manually displace the piston 282 into the brew chamber 230, thereby pressurizing the brew chamber 230 while the steeping material steeps in the heated fluid. Once the brew chamber 230 valve (described above) is opened, the lever 280 can further enable the user to pressurize the brew chamber 230, thereby forcing the brewed fluid out of the brew chamber 230 and into a vessel (e.g., cup, mug, pot, thermos) below. For example, displacement of the piston 282 into the brew chamber 230 can force brewed coffee through a filter (described below), which traps remaining coffee grounds, thus separating the coffee from the grounds. Displacement of the piston 282 into the brew chamber 230 can also scrape the steeping material (E.g., coffee grounds) from the wall of the brew chamber 230 and pack the steeping material into a puck at the bottom of the brew chamber 230 (e.g., over the filter) for subsequent removal and disposal. For example, once coffee grounds are loaded into the brew chamber 230 and steeped in heated water, a user can open the brew chamber 230 valve, move the piston 282 fully into the brew chamber 230 (via the lever 280)—which packs the coffee grounds into a singular puck—and then remove the puck from the brew chamber 230 in preparation for brewing a subsequent cup of coffee rather than manually scraping or washing loose coffee grounds from the wall of the brew chamber 230.

In the foregoing implementation, the brew chamber 230 can define a circular bore, and the piston 282 can be cylindrical and undersized for the bore with a food-safe seal mating the piston 282 against the bore. For example, the piston 282 can include one or more o-rings constrained by corresponding circumferential grooves in the piston 282. Alternatively, the piston 282 can be sized for a running fit within the brew chamber 230, and the leading edges of the piston 282 and the brew chamber 230 can be chamfered to ease alignment and insertion of the piston 282 into the brew chamber 230. The piston 282 and/or the brew chamber 230 bore can also be coated with a low- or anti-stiction material, such as Teflon, to provide smooth running of the piston 282 within the brew chamber 230. However, the piston 282 and the brew chamber 230 can be of any other suitable geometry and mate (i.e., seal) in any other suitable way.

The brew chamber 230 can also include a filter 236 arranged between an inlet and an outlet of the brew chamber 230, as shown in FIGS. 8 and 9. In particular, the filter 236 can be arranged between a portion of the brew chamber 230 that holds the heated fluid during brewing and the outlet of the brew chamber 230. Generally, the filter 236 is permeable to the fluid (with flavors from the steeping material) but not the steeping material. For example, the filter 236 can be a metal mesh filter with vias smaller than at least 99% of coffee grounds produced by a new coffee grinder set at a specific ground size specified in a corresponding coffee brew recipe. The filter 236 can alternatively include a punched or drilled (metal) plate, a paper filter, a screen, or any other suitable type of filter.

The brew chamber 230 can be further configured to accept various different filters of different mesh sizes or gauges. For example, filters can be swapped into the brew chamber 230 according to a coffee brew recipe for different coffees, according to different brew recipes for a particular type of coffee, or according to a ground profile of coffee grounds to be brewed. In one example implementation, the brew chamber 230 includes a main section and a portafilter, as shown in FIG. 8. The portafilter includes an outlet and the brew chamber 230 valve and transiently (i.e., removably) engages the main section to define the bottom of the brew chamber 230. In this example implementation, a metal mesh filter can be inserted into the portafilter between two seals and the portafilter (with filter) then installed onto the main section of the brew chamber 230 prior to brewing. The portafilter can then be removed from the main section of the brew chamber 230—with the filter and a puck of compressed used steeping material—once the beverage is brewed and the fluid evacuated from the brew chamber 230 via the brew chamber 230 valve.

The brew chamber 230 can also include a heating element 232 configured to maintain a temperature of the contents of the brew chamber 230 (i.e., the fluid and the steeping material) during the brewing process, as shown in FIG. 11D. In one example, the brew chamber 230 includes a stainless steel cylinder with heating element 232 arranged circumferentially about the exterior of the brew chamber 230. In this example, the heating element 232 can be arranged near a bottom of the brew chamber 230 and/or along a length of the brew chamber 230 corresponding to a common fill depth when the brew chamber 230 is filled with a specified volume of heated fluid and steeping material. In another example, the brass brew chamber includes a chrome-plated brass cylinder, and the heating element 232 is attached to the brass cylinder over an area without chrome plating. However, brew chamber can be any other suitable food-safe, heatable and/or heat-safe material, such as borosilicate glass or a food-safe aluminum alloy. Alternatively, the brew chamber 230 can be a food-safe or non-food-safe material with a food-safe coating, such as electroplated chromium or Teflon.

The brew chamber 230 can further include a temperature sensor 238 configured to output a signal corresponding to a temperature of contents within the brew chamber 230, as shown in FIG. 9. The processor 290 can thus implement closed loop feedback (e.g., PID) to control the brew chamber 230 heating element 232 to achieve a target brewing temperature of fluid within the brew chamber 230. For example, the brew chamber temperature sensor 238 can include a thermistor coupled to the brew chamber 230 wall but not in contact with the fluid, or the brew chamber temperature sensor 238 can include a food-safe sensor in contact with the fluid, such as inside and near the bottom of the brew chamber 230 substantially offset from the brew chamber 230 heating element 232. The brew chamber 230 can also be milled, cast, forged, or otherwise manufactured with a pocket to reduce a distance between temperature sensor 238 and fluid within the brew chamber 230.

Furthermore, in the implementation described above in which the brew chamber 230 also includes a portafilter, the heating element 232 can be arranged over or coupled to the main section of the brew chamber 230, and the portafilter can include multiple tabs (or lobes, ears, etc.) that engage the main section of the brew chamber 230 to conduct heat from the heating element 232 (via the main section of the brew chamber 230) into the portafilter. For example, the main section of the brew chamber 230 and the portafilter can be stainless steel, and the portfilter can include four large cam-shaped tabs that engage and lock into the main section of the brew chamber 230 over a substantially large surface area. Alternatively, the main section of the brew chamber 230 and/or the portafilter can be chrome-plated brass or any other suitable food-safe material.

9.6 Drip Tray

As shown in FIG. 8, one variation of the apparatus 200 further includes a drip tray. The drip ray can collect fluid or condensate spilling out of the brew chamber 230, exhausted from the second contactless valve 250 (or connected muffler or condenser), or spilled from a mug, cup, or other vessel below the brew chamber 230 valve. In one example, the apparatus 200 includes an overflow line connecting a catch around the brew chamber 230 to the drip tray 270. The apparatus 200 can similarly include an overflow line from the reservoir 210 to collect extra fluid from the reservoir 210 if the reservoir 210 is overfilled. The apparatus 200 can further include a perforated tray arranged under the brew chamber 230 outlet to collect drips from the brew chamber 230 outlet and/or spills from a mug, cup, or other vessel arranged on the perforated tray and under the outlet of the brew chamber 230. The muffler, condenser, and/or second tube 252 can further terminate at the drip tray 270.

9.7 Processor

As shown in FIG. 10, one variation of the apparatus 200 includes a processor 290, which is configured to selectively transition the first and second contactless valves 240, 250, to control the heating element 222 in the boiler 220 and/or the heating element 232 in the brew chamber 230, and to control the air pump 260 to meter heated water into the brew chamber 230 during a brewing event. Generally, the processor 290 functions to control various actuators according to various sensor inputs to automatically brew a beverage once water and steeping material are loaded into the apparatus 200.

In one implementation, the processor 290 cooperates with a user interface 292 (e.g., a digital display adjacent the brew chamber 230) to prompt a user to select a brew recipe for a particular coffee (e.g., by scanning a QR code on a coffee bag), to insert a filter 236 (corresponding to the selected brew recipe) into the portafilter, to install the portafilter onto the main section of the brew chamber 230, and to load the reservoir 210 with fresh water. In this implementation, once the preceding are confirmed—either manually by the user or automatically via one or more sensors within the apparatus 200 (e.g., a fluid level sensor 226 within the reservoir 210 and/or a position sensor adjacent the portafilter)—the processor 290 opens both the first and second contactless valves 240, 250 (shown in FIG. 11A) and then closes the first contactless valve 240 when a binary fluid level sensor 226 within the boiler 220 triggers, indicating that a proper boiler fill level has been reached. The processor 290 subsequently closes a high-power circuit to deliver power to the boiler 220 heater and closes a high-power circuit to deliver power to the brew chamber 230 heater to preheat the brew chamber 230 (shown in FIGS. 11B and 11C). Once a thermistor coupled to the boiler 220 indicates that a target temperature (specified in the selected brew recipe) is reached, the processor 290 cuts power to the boiler 220 heater and closes the second contactless valve 250. The processor 290 then powers the air pump 260 for a preset fill time corresponding to a target water volume in the brew chamber 230, and the processor 290 shuts off the air pump 260 and opens the second contactless valve 250 (to allow fluid to drain from the conduit back into the boiler 220) (shown in FIG. 11D). The processor 290 finally cooperates with the user interface 292 to display a countdown from a brew time (specified in the selected brew recipe). Once the brew time expires, the processor 290 can further trigger an audible and/or visual alarm or a notification at a connected device (e.g., a smartphone or tablet) to prompt the user to dispense the coffee into a vessel by manually opening the brew chamber 230 valve (shown in FIG. 11E).

In the foregoing implementation in which the brew chamber 230 includes a piston 282 and lever 280 to pressurize the brew chamber 230, the processor 290 can also interface with a fluid pressure sensor in contact with fluid within the brew chamber 230, a strain gauge or pressure sensor arranged between the piston 282 and the lever 280, a position sensor coupled to a level pivot, or any other suitable sensor to determine a pressure within the brew chamber 230 during a brewing event. The processor 290 can control the user interface 292 to display a visual or haptic guide to aid the user in maintaining a proper pressure (specified in the selected brew recipe) within the brew chamber 230 by applying torque to the lever 280.

However, the processor 290 can function in any other way to control various actuators within the apparatus 200 according to any other sensor output to brew the beverage.

The methods and components of the apparatus 200 can also be applied other systems and fields to portion or dose specific volumes (or masses) of fluid from a reservoir into a temperature-regulated container and then into a mixing chamber. In particular, any of the foregoing components and methods can be applied in any other field to accurately portion water or other fluid, such as from holding tank or a cooled tank (rather than a boiler as described above). For example, these methods and components can be implemented within a water filtration system to portion water from a plumbed water line or through multiple filtration stages. Furthermore, the apparatus 200 can implement other actuators or devices to control pressure within the boiler 220 (or holding tank, etc.) such as a secondary pressurized steam boiler or a water pump to actively displace fluid into the boiler 220. The apparatus 200 can also account for a fluid property of a dispensed fluid—such as density and/or viscosity of alcohol, glycerin, oil, refrigerant, or an other fluid within the apparatus 200—to control run time of the air (or other) pump.

The foregoing methods and apparatus can be embodied and/or implemented at least in part as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions can be executed by computer-executable components integrated with an application, applet, host, server, network, website, communication service, communication interface, hardware/firmware/software elements of a user computer or mobile device, or any suitable combination thereof. Other systems and methods of the embodiments can be embodied and/or implemented at least in part as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions can be executed by computer-executable components integrated by computer-executable components integrated with apparatuses and networks of the type described above. The computer-readable medium can be stored on any suitable computer readable media such as RAMs, ROMs, flash memory, EEPROMs, optical devices (CD or DVD), hard drives, floppy drives, or any suitable device. The computer-executable component can be a processor 290 but any suitable dedicated hardware device can (alternatively or additionally) execute the instructions.

As a person skilled in the art will recognize from the previous detailed description and from the figures and claims, modifications and changes can be made to the embodiments of the invention without departing from the scope of this invention as defined in the following claims. 

We claim:
 1. A method for brewing a beverage at a brewing apparatus, the method comprising: retrieving a brew recipe for a brew cycle based on a selection for the brew recipe; calculating a pump duration based on a target fluid volume specified in the brew recipe; opening a first valve arranged between a reservoir and a boiler to dispense fluid from the reservoir into the boiler; closing the first valve in response to receipt of an output from a fluid level sensor within the boiler indicating achievement of a target fluid level within the boiler, the target fluid level specified in the brew recipe; actuating a first heating element thermally coupled to the boiler to heat fluid within the boiler; closing a second valve, the second valve coupled to an exhaust port of the boiler by a first fluid conduit; pumping gas into the boiler for the pump duration to dispense heated fluid from the boiler, through a second fluid conduit, into a brew chamber in response to receipt of an output from a temperature sensor thermally coupled to the boiler indicating achievement of a target brew temperature within the boiler, the target brew temperature specified in the brew recipe; and actuating a second heating element thermally coupled to the brew chamber to maintain fluid within the brew chamber at the target brew temperature.
 2. The method of claim 1, wherein retrieving the brew recipe for the brew cycle comprises retrieving the brew recipe in response to a selection for the brew recipe from a set of brew recipes presented through a user interface integrated into the brewing apparatus.
 3. The method of claim 2, further comprising initiating a timer for a brew duration specified in the brew recipe in response to dispensation of the target volume of fluid into the brew chamber and presenting a visual prompt within the user interface to dispense fluid from the brew chamber in response to expiration of the timer.
 4. The method of claim 2, further comprising retrieving a portafilter specification from the brew recipe and delivering a prompt, through the user interface, to install a portafilter consistent with the portafilter specification into the brewing apparatus prior to initiation of the brew cycle.
 5. The method of claim 1, wherein calculating the pump duration comprises calculating the pump duration based on an output of the temperature sensor and a target final volume of the brewed beverage.
 6. The method of claim 1, wherein closing the first valve comprises driving a plunger into an elastic tube fluidly coupling the reservoir to the boiler to obstruct fluid flow from the reservoir into the boiler; and wherein opening the first valve comprises retracting the plunger to open the elastic tube to enable fluid to drain from the reservoir into the boiler.
 7. The method of claim 1, wherein actuating the second heating element comprises sampling a second temperature sensor thermally coupled to the brew chamber and implementing closed loop feedback control to cycle power to the second heating element based on outputs of the second temperature sensor and the target brew temperature.
 8. The method of claim 1, wherein pumping air into the boiler comprises actuating an electromechanical pump to pump ambient air into the boiler for the pump duration with the first valve closed and the second valve closed to dispense approximately the target fluid volume of heated fluid into the brew chamber; and further comprising opening the second valve to exhaust gas from the boiler to ambient in response to expiration of the pump duration. 